初学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了呢?
展开
 我来答
百度网友0583ac2ea
2011-07-18 · TA获得超过957个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:219万
展开全部
这个问题,其实开始我也不是很清楚,后来自己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
abcd20100501
2011-07-18 · TA获得超过207个赞
知道答主
回答量:148
采纳率:0%
帮助的人:154万
展开全部
简单的
for(A;B;C){
D
}
他的执行顺序是ABDCBDC....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-18
展开全部
java.lang.ClassNotFoundException
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式