说我有这样的do-while循环:
public class Main {
public static void main(String[] args) {
boolean b = false;
int i = 1;
do {
i++;
} while (b = !b);
System.out.println(i);
}
}
什么会导致i
增加三个?我可以理解这个循环将确保它至少运行一次,但在这种情况下,布尔值b
被重新赋值为true,不会导致无限循环?
答案 0 :(得分:2)
这里是你的代码的解释..
b=false i=1;
i=2
; while
条件b=!b
表示b=true
; i=3
; while
条件b=!b
表示b=fase
并退出
while
循环SOP
和print
i
的值为3
并退出程序答案 1 :(得分:2)
在循环之前,i = 1
和b = false
。
----------+--------+--------+
Pass | 1 | 2 |
----------+--------+--------+
i | 2 | 3 |
----------+--------+--------+
b | false | true |
----------+--------+--------+
condition | !false | !true | //loop breaks
----------+--------+--------+
答案 2 :(得分:1)
这里有两点需要注意。 b=!b
作为条件检查意味着分配b
的补充值,然后检查条件满意度。正如我们所知,do-while循环至少执行一次,值为3。