在下面寻找数组中最大数的代码中,为什么maxput 在代码之外?为什么max外面是括号?在这一行中,我无法理解if语句的构造。public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // Print all the array elements for (int i = 0; i < myList.length; i++) { System.out.println(myList[i] + " "); } // Summing all elements double total = 0; for (int i = 0; i < myList.length; i++) { total += myList[i]; } System.out.println("Total is " + total); // Finding the largest element double max = myList[0]; for (int i = 1; i < myList.length; i++) { if (myList[i] > max) max = myList[i]; } System.out.println("Max is " + max); } }
2 回答
波斯汪
TA贡献1811条经验 获得超4个赞
这条线
if (myList[i] > max) max = myList[i];
可以看作
if (myList[i] > max)
{
max = myList[i];
}
即它有一个条件if,当它满足时,有一个关于做什么的声明。即第二个max不是 的逻辑表达式的if一部分,它是有条件执行的代码的一部分。
总的效果是查看 中的每个条目myList,将其与之前看到的最大值进行比较,并保留较高的值,作为之前看到的最高值。
关于“为什么?”,这是一个品味问题。
优点是输入的字符更少,阅读的代码“更短”。
我总是使用较长版本的原因主要是编码规则,这些规则对于维护越重要,从事给定项目的不同人员越多。
临摹微笑
TA贡献1982条经验 获得超2个赞
假设如果您在 for 循环中声明“double max = myList[0];”,对于每个迭代,max 变量将被声明并初始化为列表中的第一个元素。
例如,如果列表包含 2, 4, 1, 9, 8 我们认为 2 是最大值(因此将 2 存储在 max 变量中)然后将 2 与列表中的其他值进行比较
如果在 IF 中只有一个语句要执行,那么您可以编写不带括号的 IF
喜欢
如果(a>b)
System.out.println(a + "is greater");
它类似于
如果(a>b)
{
System.out.println(a + "is greater");
}
添加回答
举报
0/150
提交
取消