数组问题导致java无限循环
public class trothBrthdays {
public static void main ( String args [] ) {
Random day = new Random();
int days[] = new int[366];
int smallest = 0;
int largest = 885000;
for (int i = 1; i <= 885000; i++)
{
int persons = day.nextInt(365) + 1;
days[persons] += 1;
}
for (int a = 1; a <= 365; a++)
{
System.out.printf ( " \nDay %d: %d ", a, days[a]);
}
在这里,程序可以找到生日最多的一天
for (int b = 0; b < days.length;)
{
if(days[b] > smallest)
{
largest = days[b];
System.out.printf ( "\nLargest: %d ", days[b]);
}
}
在这里,程序查找生日最少的日期
for (int c = 0; c > days.length;)
{
if (days[c] < largest)
{
smallest = days[c];
System.out.printf ( "\nSmallest: %d ", days[c]);
}
}
}
}
问题是当程序找到最大的数时,它会无限循环最大的数,我不知道为什么。我仍然是一个初学者程序,我喜欢对如何格式化和键入这个程序提出建设性的批评
# 1 楼答案
发生这种情况的原因是因为您的for循环:
for
循环的构造分为三个部分。第一部分是迭代器的声明:第二部分是断裂条件。也就是说,必须满足什么条件,否则循环将中断
最后,第三部分确定在每次迭代之间应该更改什么。但您的for循环缺少该部分。应该是
编辑:
您遇到的第二个问题是,在编写代码时,这将不适用于代码。但我想这将是一个练习,让你找出原因