黑马程序员技术交流社区

标题: &&与&的区别 [打印本页]

作者: 明光照    时间: 2012-9-24 21:50
标题: &&与&的区别
public class Test_16 {
public static void main(String args[]) {
  int a = 2, b = 3;
  // if (a < 2 & (b / 0) > 1) {
  // System.out.println("false");
  // }//报错
  if (a < 2 & (b / 1) > 1) {
   System.out.println("true");
  }
  if (a < 2 && (b / 0) > 1) {// 这里的除数为0哦
   System.out.println("不可能!");
  }
  // 从上面的结果只可以看了出,&与&&都可以进行逻辑运算,但&&的一个特点是:
  // 判断前面为假时,后面便不再判断,直接返回假,但&却会继续判断下一个是真还是假
  // 即: A&B的话,无论A是否是真,它都会去判断B的
  // A&&B的话,如果A是真的,它才会判断B,相反的,A是假的话,它就不去判断B,直接认定是假
}
}

作者: 尤圣回    时间: 2012-9-24 22:07
&位运算符 &&与运算符也叫逻辑运算 这个方法有短路功能就是前面的条件为假后面的就不判断就为假
作者: 杜正华    时间: 2012-9-24 22:16
  1. package com.aduvm.practice;

  2. public class And {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.                 int a = 2, b = 3;

  9.                   if (a < 2 & (b / 1) > 1) {
  10.                    System.out.println("true");
  11.                   }
  12.                   if (a < 2 && (b / 0) > 1) {// 这里的除数怎么能为0呢?
  13.                    System.out.println("不可能!");
  14.                   }
  15.                   
  16.        
  17.                     /*首先楼主要分清楚&&与&的去别:
  18.                     &&用于逻辑运算:例如:A&&B的话,如果A是真的,它才会判断B,B为真则结果为真
  19.                             相反的,A是假的话,它就不去判断B,直接认定是假
  20.                     &用于位用算:例如:1&0; 就是十进制1的二进制数和十进制0的二进制数垵位做与运算。
  21.                               00
  22.                               与       01
  23.                             -------------------
  24.                                          00
  25.                       00转化为十进制还是0;                 
  26.                             */
  27.                   
  28.                   

  29.         }

  30. }
复制代码

作者: 杜正华    时间: 2012-9-24 22:26


上面代码乱了,贴图出来看了,呵呵!
作者: 王震阳老师    时间: 2012-9-24 22:59
&&是短路运算符,前面为假的时候该运算符后面就不进行计算。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2