慕勒2326186
2017-09-23 11:42
public class HelloWorld {
public static void main(String[] args) {
// 定义一个整型数组,并赋初值
int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };
int max = nums[0]; // 假定最大值为数组中的第一个元素
int min = nums[0]; // 假定最小值为数组中的第一个元素
double sum = 0;// 累加值
double avg = 0;// 平均值
for (int i = 0; i < nums.length; i++) { // 循环遍历数组中的元素
// 如果当前值大于max,则替换max的值
if(nums[i]>max);
max=nums[i];
// 如果当前值小于min,则替换min的值
if(nums[i]<min);
min=nums[i];
// 累加求和
sum+=nums[i];
}
// 求平均值
avg=sum/nums.length;
System.out.println("数组中的最大值:" + max);
System.out.println("数组中的最小值:" + min);
System.out.println("数组中的平均值:" + avg);
}
}
其实这个很简单,你加了;后,if()就独立出来了,就只是一个判断,不管是还是否都没动作,然后继续后面的赋值(跟if()无关了),所以运行到最后max,min的值都等于nums的最后一个值
if(.......){..........}
if后面没分号
你的代码有bug
if(nums[i]>max);
max=nums[i];
// 如果当前值小于min,则替换min的值
if(nums[i]<min);
min=nums[i];
这段代码的if(...)后面不应该加“;”
Java入门第一季(IDEA工具)升级版
1167352 学习 · 18629 问题
相似问题