public class mm {
static boolean foo(char c) {
System.out.print(c);
return true;
}
public static void main( String[] argv ) {
int i =0;
for ( foo('a'); foo('b')&&(i<2); foo('c')){
i++ ; foo('d');
}
}
}
结果是abdcbdcb,请问是怎么算的,谢!
static boolean foo(char c) {
System.out.print(c);
return true;
}
public static void main( String[] argv ) {
int i =0;
for ( foo('a'); foo('b')&&(i<2); foo('c')){
i++ ; foo('d');
}
}
}
结果是abdcbdcb,请问是怎么算的,谢!
+-----+ +-----+ +-----+
| 初值 | ---> | 条件 | <--- | 迭代 |
+-----+ +-----+ +-----+
| ↓ 满足条件 ↑
| +-------+ |
不满足条件 | | 循环体 | -----+
| +-------+
↓
退出循环
·第一个语句初始化只在首次进入循环时进行一次
·第二个条件判断每次都进行
·第三个语句除了第一次每次都进行
1. i=0 foo('a'):输出:a;
2. foo('b') :输出:b;
3. i=1
4. foo('d'):输出: d;
5. foo('c'):输出: c;
6. foo('b'):输出:b;
7. i=2
8. foo('d'):输出: d;
9. foo('c'):输出: c;
10. foo('b'):输出:b;
判断 i<2
退出循环 结果:abdcbdcb;
over!
d;
}
等于
a;
while(b){
d;
c;
}