这个程序只运行了很长时间并且什么也没输出。我某处出了问题,有人发现了怎么样?
我只需要它来生成1到10之间的偶数
class EvenLoop {
public static void main(String[] args) {
int i = 1;
int limit = 10;
while( i <limit)
{
if(i % 2==0)
{
System.out.println("i = " + i);
i++;
}
}
}
答案 0 :(得分:0)
将你的i ++从infinly运行的if语句中删除,因为我保持1
while( i <limit)
{
if(i % 2==0)
{
System.out.println("i = " + i);
}
i++;
}
答案 1 :(得分:0)
将i ++放在while循环中,在if条件之外,以避免无限循环。
public static void main(String[] args) {
int i = 1;
int limit = 10;
while( i <limit)
{
if(i % 2==0)
{
System.out.println("i = " + i);
}
i++; // put i++ inside while loop and outside of if
}
}
答案 2 :(得分:0)
您正在循环,直到i
达到特定限制,但如果它可以被两个分割,则只会在循环中增加i
。所以它将无限地停留在第一个不能被2整除的数字上,因为它永远不会增加。您可能希望增量(i++
)超出if
。
while( i <limit) {
if(i % 2 == 0) {
System.out.println("i = " + i);
}
i++;
}
答案 3 :(得分:0)
你正在增加&#39;我&#39;在if语句中。
你从1&amp;永远不会输入if来增加i。
答案 4 :(得分:0)
几乎没有更正如下:
class EvenLoop {
public static void main(String[] args) {
int i = 1;
int limit = 10;
while (i < limit) {
if (i % 2 == 0) {
System.out.println("i = " + i);
}
i++;//outside if
}
}
}// missing closing bracket
答案 5 :(得分:0)
public class EvenLoop {
public static void main(String[] args) {
int start = 1;
int limit = 10;
for (int i = start + start % 2; i <= limit; i += 2) {
System.out.printf("i = %d%n", i);
}
}
}