java 一些难点请大侠帮我解决一下 谢谢各位

publicclassjisuan{publicstaticvoidmain(Stringargs[]){inta=0;intb=0;for(intc=0;c<5;c++... public class jisuan{
public static void main(String args[])
{
int a =0;
int b =0;
for(int c=0;c<5;c++)
{
if((++a>2)‖(++b>2))
{
a++;
}
}
System.out.println(a+" "+b);

}
} 1这段程序错在那里 2书中输出结果a=8 b=2怎么来的 FOR 嵌套IF循环帮我介绍讲下。3里面有个或符号是非法正确应该如何输出。
展开
 我来答
为一分钱而战
2010-01-11 · 超过19用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
1, 我不知道你问的哪个角度的错误,这段代码没有什么错误,就是不规范而已,比如类名开头大写
2, 就这段代码的逻辑来讲,
5次循环
首先说明你的判断条件是++a>2和++b>2,意思先自增,再判断
第一次 a自增到1 b自增到1 不符合条件 不进if里 继续循环
第二次 a自增到2 b自增到2 不符合条件 不进if里 继续循环
第三次 a自增到3 符合条件 又因为是|| 或, 只要有一个条件符合 就直接进if里面了 所以 ++b>2这个条件不判断 也就是不自增 然后if里面a++ 这个时候a就=4
第四次a自增到5 符合条件 不执行第二个条件判断 进if里 a++ a就到6了
第五次a自增到7 符合条件 不执行第二个判断 进if里 a++ a就到8了
5次循环结束
跳出循环
控制台打印输出 8 2
3,不明白你要表达什么意思
viper大婶儿
2010-01-11 · TA获得超过417个赞
知道小有建树答主
回答量:337
采纳率:0%
帮助的人:220万
展开全部
呵呵,复制运行了下,你是打成了中文打字法的“||”了,所以会报错(平时编程注意避免中英打字法的切换,很容易出错)
至于过程,楼上说得很详细,补充一点吧:“&&”和“||”都输出短路运算符,“||”先检查第一个表达式是否返回“true”,如果是“true”则结果必为“true”不再检查下面的表达式,所以楼上说得第3,4,5次循环中第二个表达式不执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友53bf949
2010-01-11 · TA获得超过365个赞
知道答主
回答量:75
采纳率:0%
帮助的人:73.7万
展开全部
答案确实是a=8 b=2,For循环仅仅是一个循环,没有break或return是不会退出循环的,这个程序中你注意三点,一,循环的次数,应该是5次,也就是循环体中的代码会执行5次,这个弄清楚了之后看第二点,a++和++a的区别,前者是先把a的值进行比较再自己加1,后者也是先自己加1后再进行比较,OK,这点明白了再看最后一点,也是最重要的一点,在if语句中如果有"||"运算的话,当条件一(‖左边的条件)满足时,条件二(‖右边的条件)是不会再进行运算的,所以,当循环到第二次时,++a的值已经为3满足条件了,条件二"++b"就不会被执行,直接执行主代码,而后面的循环的a就都满足条件了,这就是为什么b等于2,for循环5次后,a的值等于8也就很容易理解了,至于或符号非法,你检查一下输入”‖“时的输入法状态,在英文状态下输入应该就没有问题,或运算就是这样写的,我刚刚也试着运行过,没有错误,以上内容完全都是我用手机一个个字打的,希望对你有所帮助!

参考资料: 如果您的回答是从其他地方引用,请表明出处

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式