学习内容:
1. 求出 1 + 2 + 3 +4 +... +50之间的和
1 package day01; 2 public class Jiafa{ 3 public static void main(String[] args) { 4 int sum=0; 5 for(int i=1;i<=50;i++) 6 { 7 sum=sum+i; 8 } 9 System.out.println("sum="+sum); 10 } 11 }
2. 比较值
(1)最大值、最小值
两个数比较大小用 if 语句
多个数找出最大值(最小值):
可用数组存放一堆需要比较的值,然后使用 for 循环进行遍历,如果当前元素比最大值变量还大,就将当前元素赋值给最大值变量,直到遍历结束为止
1 package day01; 2 public class MaxMoreDemo{ 3 public static void main(String[] args) { 4 int[]a= {2,3,4,5,9,7,8}; 5 int max=0; 6 for(int i=0;i<a.length;i++){ 7 if(a[i]>max) { 8 max=a[i]; 9 } 10 } 11 System.out.println("最大值是:"+max); 12 } 13 }
相邻的两个元素比较,其中数值大的元素与最大值进行比较,二者中较大的赋值给最大值变量;以此类推,直到数组中的最后一个为止
1 package day01; 2 public class MaxMoreDemo{ 3 public static void main(String[] args) { 4 int[]a= {2,3,4,5,9,7,8}; 5 int max=0; 6 for(int i=0;i<a.length-1;i++){ 7 if(a[i]>a[i+1]&&a[i]>max) { 8 max=a[i]; 9 }else if(a[i+1]>a[i]&&a[i+1]>max) { 10 max=a[i+1]; 11 } 12 } 13 System.out.println("最大值是:"+max); 14 } 15 }
将数组分为两部分,将后部分的第一个逐一与前部分每一个比较,如果当前元素大,并且也大于最大值变量,则将当前元素赋值给最大值变量
1 package day01; 2 public class MaxMoreDemo{ 3 public static void main(String[] args) { 4 int[]a= {2,3,4,5,9,7,8}; 5 int max=0; 6 for(int i=1;i<a.length;i++){ 7 for(int j=i-1;j>=0;j--) { 8 if(a[j+1]>a[j]&&a[j+1]>max) { 9 max=a[j+1]; 10 } 11 } 12 } 13 System.out.println("最大值是:"+max); 14 } 15 }
(2)平均值
1 package day01; 2 public class AvqDemo{ 3 public static void main(String[] args) { 4 int[]a= {2,3,4,5,9,7,8}; 5 int sum=0; 6 int avg=0; 7 for(int i=0;i<a.length;i++){ 8 sum+=a[i]; 9 } 10 avg=sum/a.length; 11 System.out.println("平均值为:"+avg); 12 } 13 }
遇到的问题:
1. 当出现 Resource leak: 'con' is never closed 警告,我没有使用 Scanner.close() 时,编译系统提供的修改方案是 @SuppressWarnings("resource") ,允许选择性地取消特定代码段(即,类或方法)中的警告。
2. 找最大值最小值的最后一种方法不太理解
明天要学习的内容:
3.2