如果condition为false,为什么while循环处理为true?

Dhe*_*yay 0 java

我想用Java做:

int i=5;
while(i-- >0) {
   System.out.println(i);

}
Run Code Online (Sandbox Code Playgroud)

运行此程序时,输出为:

4
3
2
1
0
Run Code Online (Sandbox Code Playgroud)

0在输出中我很惊讶.我是新的发展.谁能证明这一点?

Tim*_*sen 5

在您的while情况下i-- > 0,首先i评估变量然后递减.

i达到该值时1,它将通过循环测试然后递减到0.这就是print语句0在输出中显示的原因.

这是一个助记符,可用于跟踪递减和递增运算符的工作方式:

int i = 5;
System.out.println("When i = 5 then:");
System.out.println("i-- is " + i--);
i = 5;
System.out.println("--i is " + --i);
Run Code Online (Sandbox Code Playgroud)

输出:

When i = 5 then:
i-- is 5
--i is 4
Run Code Online (Sandbox Code Playgroud)