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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xicheng26 中级黑马   /  2015-5-11 22:53  /  777 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在java的逻辑运算符中,有这么四类:&&(短路与),&,|,||(短路或)。


&&和&都是表示于,区别是&&只要满足第一个条件,后面条件就不再判断。而&要对所有的条件都进行判断。

看下面的程序:

  • public static void main(String[] args) {  
  •         // TODO Auto-generated method stub  
  •         if((23!=23)&&(100/0==0)){  
  •             System.out.println("运算没有问题。");  
  •         }  
  •     }  
  • 输出的是“运算没有问题”,没有报错。而将&&改为&就会如下错误:
  • Exception in thread "main" java.lang.ArithmeticException: / by zero  
  • 原因是:&&时判断第一个条件为false,后面的100/0==0这个条件就没有进行判断。
            &时要对所有的条件进行判断,所以会对后面的条件进行判断,所以会报错。
  • 电路问题总结:

    对于:&   -- >  不管怎样,都会执行"&"符号左右两边的程序

    对于:&& -- >  只有当符号"&&"左边程序为真(true)后,才会执行符号"&&"右边的程序。

    下面来说说运算规则:

    对于:&  -- >  只要左右两边有一个为false,则为false;只有全部都为true的时候,结果为true

    对于:&& -- > 只要符号左边为false,则结果为false;当左边为true,同时右边也为true,则结果为true




||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。
看下面的程序:
  • public static void main(String[] args) {  
  •     // TODO Auto-generated method stub  
  •     if((23==23)||(100/0==0)){  
  •         System.out.println("运算没有问题。");  
  •     }  
  • }  
  • 此时输出“运算没有问题”。若将||改为|则会报错。


    原因是:||判断第一个条件为true,后面的条件就没有进行判断就执行了括号中的代码,而|要对所有的条件进行判断,
    所以会报错。



评分

参与人数 1黑马币 +20 收起 理由
Grady + 20 赞一个!

查看全部评分

8 个回复

倒序浏览
来这里复习一下了
回复 使用道具 举报
嗯,总结的不错
回复 使用道具 举报
谢谢分享....
回复 使用道具 举报
也过来复习复习,,,,
回复 使用道具 举报
不错!!
回复 使用道具 举报
lingdu 中级黑马 2015-5-12 00:26:02
7#
每天进步一点点,坚持就是最大的努力!感谢分享
回复 使用道具 举报
Grady 中级黑马 2015-5-12 00:26:33
8#
赞一个                       
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马