初学java有关for循环语句问题
publicclassTest{staticbooleanfoo(charc){System.out.print(c);returntrue;}publicstaticv...
public class Test {
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');
}
}
}
输出的结果是多少?
共循环几次?循环第2次为什么不显示A了呢? 展开
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');
}
}
}
输出的结果是多少?
共循环几次?循环第2次为什么不显示A了呢? 展开
3个回答
展开全部
这个问题,其实开始我也不是很清楚,后来自己debug一下,又查看了一下for循环执行逻辑总算了解了为什么是这种结果。。
输出结果:
ABDCBDCB
共循环两次:
首先了解一下for结构
for(初始化循环变量;循环条件;更改循环变量)
更改循环变量时在循环体执行结束之后修改的。。这一点请注意
第一次:
for (foo('A');foo('B')&&(i<2);foo('C')) 也就是 for(true;true&&(0<2);更改循环变量)
先执行了foo('A'),foo('B')也就是先输出了‘A’ ‘B’,判断循环条件(true&&(0<2)为true),执行循环体。 i++; foo('D'); 此时输出 ‘D’。
此时i的值变为1.
好了,此刻又要进行循环变量的修改,也就是foo('C'),此时又输出字母‘C’。
第二次:
此时,循环变量已经初始化,不再执行,判断循环条件(foo('B')&&(1 < 2))为true,输出‘B’,然后执行循环体:i++;foo('D')此时输出D,同时i+1,即此刻i的值是2
此时才进行循环变量的修改,也就是foo('C'),此时又输出字母‘C’。
第三次:
对循环条件进行判断,如上,输出B,不过此时foo('B') = true ,但是(2<2) = false,故不满足条件,退出循环。循环体没有进行第三次的执行。
到此共输出AB D CB D CB
输出结果:
ABDCBDCB
共循环两次:
首先了解一下for结构
for(初始化循环变量;循环条件;更改循环变量)
更改循环变量时在循环体执行结束之后修改的。。这一点请注意
第一次:
for (foo('A');foo('B')&&(i<2);foo('C')) 也就是 for(true;true&&(0<2);更改循环变量)
先执行了foo('A'),foo('B')也就是先输出了‘A’ ‘B’,判断循环条件(true&&(0<2)为true),执行循环体。 i++; foo('D'); 此时输出 ‘D’。
此时i的值变为1.
好了,此刻又要进行循环变量的修改,也就是foo('C'),此时又输出字母‘C’。
第二次:
此时,循环变量已经初始化,不再执行,判断循环条件(foo('B')&&(1 < 2))为true,输出‘B’,然后执行循环体:i++;foo('D')此时输出D,同时i+1,即此刻i的值是2
此时才进行循环变量的修改,也就是foo('C'),此时又输出字母‘C’。
第三次:
对循环条件进行判断,如上,输出B,不过此时foo('B') = true ,但是(2<2) = false,故不满足条件,退出循环。循环体没有进行第三次的执行。
到此共输出AB D CB D CB
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询