猿问

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

在下面寻找数组中最大数的代码中,为什么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);  

       }

    }


杨__羊羊
浏览 543回答 2
2回答

波斯汪

这条线if (myList[i] > max) max&nbsp; = myList[i];可以看作if (myList[i] > max){&nbsp;&nbsp; &nbsp; max&nbsp; = myList[i];}即它有一个条件if,当它满足时,有一个关于做什么的声明。即第二个max不是 的逻辑表达式的if一部分,它是有条件执行的代码的一部分。总的效果是查看 中的每个条目myList,将其与之前看到的最大值进行比较,并保留较高的值,作为之前看到的最高值。关于“为什么?”,这是一个品味问题。优点是输入的字符更少,阅读的代码“更短”。我总是使用较长版本的原因主要是编码规则,这些规则对于维护越重要,从事给定项目的不同人员越多。

临摹微笑

假设如果您在 for 循环中声明“double max = myList[0];”,对于每个迭代,max 变量将被声明并初始化为列表中的第一个元素。例如,如果列表包含 2, 4, 1, 9, 8 我们认为 2 是最大值(因此将 2 存储在 max 变量中)然后将 2 与列表中的其他值进行比较如果在 IF 中只有一个语句要执行,那么您可以编写不带括号的 IF喜欢如果(a>b)&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(a&nbsp;+&nbsp;"is&nbsp;greater");它类似于如果(a>b){System.out.println(a&nbsp;+&nbsp;"is&nbsp;greater");}
随时随地看视频慕课网APP

相关分类

Java
我要回答