计算正整数循环

时间:2015-01-16 11:15:48

标签: java loops if-statement while-loop

这个程序只运行了很长时间并且什么也没输出。我某处出了问题,有人发现了怎么样?

我只需要它来生成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++;

        }
    }
}

6 个答案:

答案 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);
        }
    }
}