Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 找到最大数量?_Java_Loops - Fatal编程技术网

Java 找到最大数量?

Java 找到最大数量?,java,loops,Java,Loops,好的,所以当我输入1,2100,3,9,22,58的数组时,我不明白为什么 以下代码返回100: (这只是一个片段,是更大代码块的一部分) 提前感谢您的帮助,这让我抓狂,而且可能非常愚蠢。在第二个示例中,您在if语句中打印,因此每次它遍历列表时,都会打印出一个结果。在第一个示例中,它在if之后执行,因为您不使用大括号。如果不在语句后使用{}大括号,则假定该语句中只包含下一行 在继续编码之前,您应该学习良好的编码实践。当您的代码变得更复杂时,它将帮助您避免类似的事情。此外,单步执行代码将准确显示正

好的,所以当我输入
1,2100,3,9,22,58的数组时,我不明白为什么
以下代码返回
100

(这只是一个片段,是更大代码块的一部分)


提前感谢您的帮助,这让我抓狂,而且可能非常愚蠢。

在第二个示例中,您在if语句中打印,因此每次它遍历列表时,都会打印出一个结果。在第一个示例中,它在if之后执行,因为您不使用大括号。如果不在语句后使用{}大括号,则假定该语句中只包含下一行

在继续编码之前,您应该学习良好的编码实践。当您的代码变得更复杂时,它将帮助您避免类似的事情。此外,单步执行代码将准确显示正在发生的情况,因此您还应该学习如何使用调试器。

if (numbers[i] > result)
        result = numbers[i];
System.out.println("The max value is " + result);
不带大括号的
if
块仅包括下一行

块的
相同

解释。

没有大括号,因此它只会迭代下一个代码块,即
if

if
块也没有大括号,因此它将迭代下一个块/语句,即

result = numbers[i];

因此,您的
System.out.println(“最大值为”+result)非常有效语句在两个块之外,因此只执行一次。

在第一种情况下,如果该数字大于先前的
结果值,则将结果设置为当前数字(
number[i]
)。只要结果大于其设置的第一个值(
numbers[0]
),此操作的效果就是将结果更新为迄今为止找到的最大值。如果在循环结束时打印,则打印的是数组中的最大值(最大值)。在第二种情况下,在遍历
数字
数组时,始终打印数组中迄今为止找到的最大数字-因此,按升序打印数字。

在第一个示例中,
系统.out.println
仅在块末尾执行一次。在第二个示例中,每次遇到一个新的迄今为止最高的数字时,都会执行它

在这两个示例中添加大括号应该可以清楚地看出区别:

for (int i = 0; i < numbers.length; i++) {
    if (numbers[i] > result) {
        result = numbers[i];
    }
}
System.out.println("The max value is " + result); // only ever called once
for(int i=0;i结果){
结果=数字[i];
}
}
System.out.println(“最大值为“+结果”);//只打过一次电话
vs

for(int i=0;i结果){
结果=数字[i];
System.out.println(“最大值为”+result);//每当数字[i]>result时调用
}
}

每当您发现大于结果的数字时,就将其与结果交换,并将其打印出来

System.out.println(“最大值为”+结果)

应该紧跟在for循环之后(在花括号外),因此当循环结束时,只会打印出最大的数字。

double result=number[0];
double result = numbers[0];
for (int i = 0; i < numbers.length; i++)
{
    if (numbers[i] > result) //this will check each array members to find the max
{
        result = numbers[i];//assign the array member if it is the largest
}
System.out.println("The max value is " + result); //print the max value of the array
for(int i=0;iresult)//这将检查每个数组成员以查找最大值 { result=numbers[i];//如果数组成员是最大的,则分配它 } System.out.println(“最大值为”+结果);//打印数组的最大值
阅读java及其控制流语句

If和for语句都有一个子句,这是受控制的代码。它可以是单个语句,也可以是一组用大括号括起来的语句

请阅读以下内容:

我想回顾一下如何按照BobbyD17的建议使用调试器逐步完成代码

对于eclipse,请参考以下内容


例如。

1)所有的块都应该用大括号括起来,所有的,甚至是一行的块。2)学会正确缩进。你糟糕的缩进和缺少大括号会把你搞砸(我希望如此)。如果你不明白你的程序在做什么,我建议你在调试器中一步一步地检查代码。
for (int i = 0; i < numbers.length; i++) {
    if (numbers[i] > result) {
        result = numbers[i];
    }
}
System.out.println("The max value is " + result); // only ever called once
for (int i = 0; i < numbers.length; i++) {
    if (numbers[i] > result) {
        result = numbers[i];
        System.out.println("The max value is " + result); // called whenever numbers[i] > result
    }
}
double result = numbers[0];
for (int i = 0; i < numbers.length; i++)
{
    if (numbers[i] > result) //this will check each array members to find the max
{
        result = numbers[i];//assign the array member if it is the largest
}
System.out.println("The max value is " + result); //print the max value of the array