Java程序分析

来源:百度知道 编辑:UC知道 时间:2024/05/29 17:51:43
public class J_Boolean

{
public static void main(String[] args)
{
int month=8;
int day=1;
if((month==8)||(++day<15))
System.out.println("month="+month+",day="+day);
if((month==8)|(++day<15))
System.out.println("month="+month+",day="+day);
if(1>2&&(++day<15))
System.out.println("month="+month+",day="+day);

}
}
输出结果如图,我想请问的是是怎么得到的啊?谢谢大家了。

先编译,然后运行,命令行窗口上右击,点“标记”,然后用鼠标选中这两行,再按回车,然后来这里Ctrl-V就得到了。

if((month==8)||(++day<15))
System.out.println("month="+month+",day="+day);
||是短接符号,,month满足了,就不执行++day了
|是必须符号,就是两个条件都执行,但是有一个正确就可以通过

首先你要区分开 || 和| 的区别(和&& 与 &的区别一样)
boolean a,b:a||b 如果a为真那么a||b就不会判断||后面的b的值
而a|b 就不一样了,会同时关注a和b的值
根据你题目的意思,第一次就不会执行||后面的内容
第二次将会执行++的动作
所以第一次输出的day还是1
第二次执行了++的动作 则day变成了 输出的day=2
后面的if条件是不成立的不执行输出动作!
不知楼主被这样讲是否理解?