1. 程式人生 > >短路與和與、短路或和或的區別

短路與和與、短路或和或的區別

&&(短路與)與&的區別:

  • 最終結果都是一樣的
  • &&具有短路的效果。左邊是false,右邊就不執行

     例如:
      int x = 3;
      int y = 4;
      System.out.println((++x == 3) & (++y == 4)); //false & false = false
      System.out.println("x = " + x);     //x = 4
      System.out.println("y = " + y);     //y = 5
    
      System.out.println((++x == 3) && (++y == 4)); //false & false = false
      System.out.println("x = " + x);     //x = 5
      System.out.println("y = " + y);     //y = 5
    

||(短路或)與|的區別:

  • 最終的效果都是一樣的
  • ||具有短路的效果,左邊為true,右邊不執行

      int x = 3;
      int y = 4;
      System.out.println((++x == 3) | (++y == 4)); //false & false = false
      System.out.println("x = " + x);     //x = 4
      System.out.println("y = " + y);     //y = 5
    
      System.out.println((++x == 3) || (++y == 4)); //false & false = false
      System.out.println("x = " + x);     //x = 5
      System.out.println("y = " + y);     //y = 6