Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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 数组问题导致无限循环 公共类trothBrthdays{ 公共静态void main(字符串参数[]){ 随机日=新随机日(); 整数天[]=新整数[366]; int=0; int最大=885000; 对于(int i=1;i天.长度;) { 如果(天[c]_Java_Arrays - Fatal编程技术网

Java 数组问题导致无限循环 公共类trothBrthdays{ 公共静态void main(字符串参数[]){ 随机日=新随机日(); 整数天[]=新整数[366]; int=0; int最大=885000; 对于(int i=1;i天.长度;) { 如果(天[c]

Java 数组问题导致无限循环 公共类trothBrthdays{ 公共静态void main(字符串参数[]){ 随机日=新随机日(); 整数天[]=新整数[366]; int=0; int最大=885000; 对于(int i=1;i天.长度;) { 如果(天[c],java,arrays,Java,Arrays,问题是当程序找到最大的数时,它会无限循环最大的数,我不知道为什么。我仍然是一个初学者程序,希望对如何格式化和键入该程序提出建设性的批评。之所以会出现这种情况,是因为您的for循环: for (int c = 0; c > days.length;) { if (days[c] < largest) { smallest = days[c];

问题是当程序找到最大的数时,它会无限循环最大的数,我不知道为什么。我仍然是一个初学者程序,希望对如何格式化和键入该程序提出建设性的批评。

之所以会出现这种情况,是因为您的for循环:

        for (int c = 0; c > days.length;)
        {
            if (days[c] < largest)
            {
                smallest = days[c];
                System.out.printf ( "\nSmallest: %d ", days[c]);
            }
        }
    }
}
第二部分是断裂条件。也就是说,必须满足什么条件,否则循环将中断

(int b = 0;
编辑:


您遇到的第二个问题是,在编写代码时,这将不适用于代码。但我想这将是一个练习,让您找出原因。

您的代码格式糟糕,但在底部部分,b和c并没有递增。然而,您并没有真正提出问题——只是展示了代码。您的标记误导了您编写循环的方式,为什么您希望它会终止?代码实际上有两个问题,但我的回答至少解决了无限for循环问题:3I最初使用的是b++),但当我使用程序的最大部分时,只需重述所有随机生成的数字。这将是您必须解决的第二个问题。仔细查看循环中的
if
语句。可以将中断条件放在循环体中-因为for循环中不需要迭代步骤(事实上,它们都不需要)-但是,否则,您就很正确了。因此,如果我正确地阅读了代码,if语句会声明天[b]将始终大于最小值,因此它会无限循环,这就是问题所在。我想不出一个解决的办法,但似乎我应该知道。所以。你说得对
days[b]
始终大于
minimable
(因为
minimable==0
),当if语句命中时,它将把
最大的
设置为
days[b]
。但是接下来会发生什么呢?最小的没有改变。。。所以现在你做了完全相同的比较,同样的事情发生了!这也是它下面的循环中的一个问题。
        for (int c = 0; c > days.length;)
        {
            if (days[c] < largest)
            {
                smallest = days[c];
                System.out.printf ( "\nSmallest: %d ", days[c]);
            }
        }
    }
}
for (int b = 0; b < days.length;)
(int b = 0;
b < days.length;
b++)