计数正整数循环

count up positive integers 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++;

        }
    }
}

将你的 i++ 从 if 语句中取出 运行 因为 i 保持 1

while( i <limit)
    {
        if(i % 2==0)
        {
        System.out.println("i = " + i);


        }
     i++;
    }

将 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
    }
}

您一直在循​​环,直到 i 达到特定限制,但是如果 i 可以被二整除,您只会在循环中增加 i。所以它会无限停留在第一个不能被2整除的数,因为它永远不会增加。您可能希望您的增量 (i++) 在 if.

之外
while( i <limit) {
    if(i % 2 == 0) {
        System.out.println("i = " + i);
    }

    i++;
}

您在 if 语句中递增 'i'。

您从 1 开始并且永远不会输入 if 来增加 i。

少量更正如下:

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