A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

写出程序结果       
public class Demo
{     
        private static int j = 0;
        private static boolean methodB(int k)
        {
                j += k;
                return true;
        }
        public static void methodA(int  i)
        {
                boolean b;   
                b = i < 10 | methodB (4);
                b = i < 10 || methodB (8);
        }
        public static void main (String args[] )
        {
                methodA (0);
                System.out.println(j); //4
        }
}//为什么不打印8呢?也没说非得 是  ”真“才打印啊!

5 个回复

倒序浏览
b = i < 10 || methodB (8); 左边为真右边就不读了
回复 使用道具 举报
因为  b = i < 10 || methodB (8);
这行代码里的 ||  比较运算符的意思是如果前面是假的才会执行到后一部分,
而你的b 已经是true了。。所以就直接是true而不执行后面的methodB (8)

pass:就像&&符号,也是同个意思,前面如果是真的时候才会执行符号后的语句。
比较运算符的知识点没掌握好啊朋友。
回复 使用道具 举报
执行到i<10为真,后面就不会执行,短路额。。。
回复 使用道具 举报
楼上正解
回复 使用道具 举报
短路,||当左边为true时,右边不运算
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马