为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在这个 if 语句 `if (myList[i] > max) max

为什么在这个 if 语句 `if (myList[i] > max) max

杨__羊羊 2021-07-09 21:12:37
在下面寻找数组中最大数的代码中,为什么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,将其与之前看到的最大值进行比较,并保留较高的值,作为之前看到的最高值。


关于“为什么?”,这是一个品味问题。

优点是输入的字符更少,阅读的代码“更短”。

我总是使用较长版本的原因主要是编码规则,这些规则对于维护越重要,从事给定项目的不同人员越多。


查看完整回答
反对 回复 2021-07-14
?
临摹微笑

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");

}


查看完整回答
反对 回复 2021-07-14
  • 2 回答
  • 0 关注
  • 531 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信