Java中,&&与&,||与|的区别

[Java中,&&与&,||与|的区别]

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

||和|都是表示“或”,区别是||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。
看下面的程序:

    package test;
    public class test {
        public static void main(String[] args) {
            if ((23 == 23) || (100 / 0 == 0)) {
                System.out.println("运算没错");
            } else {
                System.out.println("没有报错");
            }
        }
     }

此时输出“运算没有问题”。若将||改为|则会报错。
原因是: || 判断第一个条件为true,后面的条件就没有进行判断就执行了括号中的代码,而 | 要对所有的条件进行判断,
所以会报错。

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

    package test;
    public class test {
        public static void main(String[] args) {
            if ((23 == 23) && (100 / 0 == 0)) {
                System.out.println("运算没错");
            } else {
                System.out.println("没有报错");
            }
        }
     }

使用 && 或者 & 就会如下错误:

  Exception in thread "main" java.lang.ArithmeticException: / by zero
at test.test.main(test.java:8)

原因是:&&时判断第一个条件为false,后面的100/0==0这个条件就没有进行判断。
&时要对所有的条件进行判断,所以会对后面的条件进行判断,所以会报错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,775评论 0 33
  • 好男人让你成长,错的男人消耗你的美貌。 情人节,我要安利一部英剧,一位男神,一句上面的心灵鸡汤。 由艾丹·特纳主演...
    刘浏阅读 2,335评论 2 5
  • 小林父母早逝,由哥哥姐姐一手带大。因为家里不富裕,眼见到了谈婚论嫁的年龄,他却还一直没有合适的对象。两个“长者”怕...
    艾西柚阅读 504评论 0 0