我是编程新手,目前遇到一个我自己无法解决的问题。我有以下代码: 包装创意;
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时输出显示错误的结果:
2
11。 4
也许有人可以解释,这是什么问题,因为不断变化的条件没有效果。 谢谢!
答案 0 :(得分:1)
实际上,当x等于20时,您正在打印4。当x等于11时,您在打印3。小于11。此外,您的输出将打印存储在变量计数器中的值,而不是x。如果要在x等于20时打印3,则必须更改为else if(x >= 11 && x <= 20)
。希望这会有所帮助。