当前位置: 首页 > 图灵资讯 > java面试题> 金三银四精选java面试题-& 和 && 、||和|的区别?

金三银四精选java面试题-& 和 && 、||和|的区别?

来源:图灵教育
时间:2023-11-27 10:26:58
 

& 和 && 、||和|的区别?

&&:短路与&:逻辑与

&&和&都可以表示逻辑与,但他们是有区别的。

  • 共同点:他们两边的条件都成立的时候最终结果才是true;
  • 不同点:&&只要第一个条件不成立,后面的条件就不再判断,而&判断的是所有条件
@Test
public void withNonDemo() {
    int i = 5;
    int j = 8;
    //if ((i == j) && (80 / 0 == 0)) {  //不会报错
    if ((i == j) & (80 / 0 == 0)) {   //出现 java.lang.ArithmeticException: / by zero
        System.out.println("1");
    } else {
        System.out.println("没有报错");
    }
}

使用&&:不会出现错误。因为第一个条件不满足时,直接返回false。如果第一个条件满足才会判断第二个条件。

使用&:出现错误。判断所有条件才会返回。

||:短路或 |:逻辑或

  • 共同点:只要两个判断条件其中有一个成立最终的结果就是true。
  • 不同点:||只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。
@Test
public void withNonDemo1() {
    int i = 5;
    int j = 5;
    if ((i == j) || (100 / 0 == 0)) {
    //if ((i == j) | (80 / 0 == 0)) {
        System.out.println("1");
    } else {
        System.out.println("没有报错");
    }
}

使用||:不会出现错误,第一个条件满足直接返回。

使用|:出现错误,所有条件都会进行判断。