java问题for

来源:百度知道 编辑:UC知道 时间:2024/06/10 15:15:51
class FlowControl {
public static void main(String args[]) {
boolean done = false;
for(int i=1; !done; i++) {
System.out.println("hello");
if(i==10)
done = true;
}
}
}

这短代码如何解释呢?
其中!done有什么特别含义呢?

for循环3个参数
;号隔开
for(1;2;3)
1为循环变量
2为循环条件
3为改变循环变量(为了不形成死循环)
如你代码
boolean done = false;
for(int i=1; !done; i++) {
System.out.println("hello");
if(i==10)
done = true;
}
第一次循环i=1条件 !done非假(真) (!是非的意思)(done是false(假))
条件为真System.out.println("hello"); 输出hello
if判断i是否等于10
条件为假(因为这时候i=1)
不执行if语句
循环继续第2次~~i++(i自身加1 这时候i = 2)
第3次循环..第4次..
条件依旧为非假(真)继续输出hello
...i=3..i=4..
循环一直到i=10
if条件判断10==10为真
执行if语句
将done从新附值为true(真)
循环判断条件!done非真(假)
条件为假
循环结束

for的执行过程
for(初始化表达式;循环表达式;循环后的操作表达式)
{
执行语句
}
就你的例子来说就是 !done对应上边的循环表达式,这个式子为真的时候执行下边的执行语句,然后在执行循环后的操作,就是你的i++,然后再对循环表达式进行判断。。。。。

if(i==10)
done = true;
}

当i等于10的时候,
for(int i=1; !done; i++) {
for条件不再成立,结束循环。

布尔值运算符,意思:取反

当done值为真时循环继续,当i=10时 返回bool值为假结束循环