Java如果循环中的条件返回错误结果

时间:2018-10-12 15:07:11

标签: java

我是编程新手,目前遇到一个我自己无法解决的问题。我有以下代码:     包装创意;

public class IdeaTest {

public static void main(String[] args) {
    int counter = 0;
    int a;
    int b = 1;
    for (int x = 30; x >= 1; x--) {
        if (x >= 21) {
            a = 1;
        } else if (x >= 11 && x < 20) {

            a = 2;
        } else {

            a = 3;
        }
        int sum = a + b;
        counter++;
        System.out.printf("  %d.  " + " %d \n", counter, sum);
    }
}
}

一切似乎都可行,但是当x等于11时输出显示错误的结果:

  1. 2
  2. 2
  3. 2

    11。 4

  4. 3
  5. 3
  6. 3

也许有人可以解释,这是什么问题,因为不断变化的条件没有效果。 谢谢!

1 个答案:

答案 0 :(得分:1)

实际上,当x等于20时,您正在打印4。当x等于11时,您在打印3。小于11。此外,您的输出将打印存储在变量计数器中的值,而不是x。如果要在x等于20时打印3,则必须更改为else if(x >= 11 && x <= 20)。希望这会有所帮助。