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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yekong262 中级黑马   /  2013-12-29 17:50  /  819 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

逻辑运算符用法   |与||    &与&&   都嘛时候用啊

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 鼓励分+1

查看全部评分

7 个回复

正序浏览
位逻辑运算符:
  &(与操作AND)、^(异或操作XOR)、|(或操作OR)
逻辑运算符:
&&(与操作AND)、||(或操作符OR)
区别:
“&”与“&&”的区别:使用&,左边无论真假,右边都进行参与运算;使用&&,如果左边为真,右边参与运算,如果左边为假、右边不参与运算
“|”与“||”的区别:使用“|”,左边无论真假,右边都参与运算,使用“||”,如果左边为真,右边不参与运算,如果左边为假,右边参与运算
  1. public class TestDemo {
  2.         public static void main(String[] args) {
  3.                 test7();
  4.         }
  5.         //验证"&"的使用,左边无论真假,右边都进行参与运算
  6.         //左边为假
  7.         public static void test(){
  8.                 if(10!=10 & 10/0==0){
  9.                         System.out.println("true");
  10.                 }else{
  11.                         System.out.println("false");
  12.                 }
  13.         }
  14.         //左边为真
  15.         public static void test1(){
  16.                 if(10==10 & 10/0==0){
  17.                         System.out.println("true");
  18.                 }else{
  19.                         System.out.println("false");
  20.                 }
  21.         }
  22.         //验证"&&"的使用,如果左边为真,右边参与运算,如果左边为假、右边不参与运算
  23.         //左边为假
  24.         public static void test2(){
  25.                 if(10!=10 && 10/0==0){
  26.                         System.out.println("true");
  27.                 }else{
  28.                         System.out.println("false");
  29.                 }
  30.         }
  31.         //结果为false
  32.         //左边为真
  33.         public static void test3(){
  34.                 if(10==10 && 10/0==0){
  35.                         System.out.println("true");
  36.                 }else{
  37.                         System.out.println("false");
  38.                 }
  39.         }
  40.         //验证"|"的使用,左边无论真假,右边都参与运算
  41.         //左边为假
  42.         public static void test4(){
  43.                 if(10!=10 | 10/0==0){
  44.                         System.out.println("true");
  45.                 }else{
  46.                         System.out.println("false");
  47.                 }
  48.         }
  49.        
  50.         //左边为真
  51.         public static void test5(){
  52.                 if(10==10 | 10/0==0){
  53.                         System.out.println("true");
  54.                 }else{
  55.                         System.out.println("false");
  56.                 }
  57.         }
  58.    //验证"||"的使用,如果左边为真,右边不参与运算,如果左边为假,右边参与运算
  59.         //左边为假
  60.         public static void test6(){
  61.                 if(10!=10 || 10/0==0){
  62.                         System.out.println("true");
  63.                 }else{
  64.                         System.out.println("false");
  65.                 }       
  66.         }
  67.         //左边为真
  68.         public static void test7(){
  69.                 if(10==10 || 10/0==0){
  70.                         System.out.println("true");
  71.                 }else{
  72.                         System.out.println("false");
  73.                 }       
  74.         }
  75. }
  76. /*
  77. *测试结果:
  78. * test()、test1()、test3()、test4()、test5()和test6()方法结果为:
  79. * Exception in thread "main" java.lang.ArithmeticException: / by zero
  80. *at com.cn.TestDemo.test2(TestDemo.java:29)
  81. *at com.cn.TestDemo.main(TestDemo.java:5)
  82. *
  83. *test2()方法的测试结果为false
  84. *test7()方法的测试结果为true
  85. * */
复制代码


评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

回复 使用道具 举报 2 0
逻辑运算符&&和&的区别是:如果左边有false了,右边将不再执行。||和|的区别是:如果左边有true了,右边将不再执行。一般我们用的多的还是||和&&    好好看看  

评分

参与人数 1黑马币 +10 收起 理由
yekong262 + 10 很给力!

查看全部评分

回复 使用道具 举报
首先,你得明白,&&和||是逻辑运算符,而&和|是位运算符
逻辑运算符很常用,为运算符你可以暂时不去理解。
&&表示所有条件都成立才为真,只要一个条件不成立,都为假,并且不再执行后面的条件,这就是楼上说的短路。 比如(x==5 && y==6),如果x!=5,第一个条件不成立,y==6都不用判断了,直接返回false
||表示只要有一个条件成立,就为真,还是举这个例子(x==5 ||y==5),如果x==5,那么y==5就不用判断了,直接返回true。
至于位运算符,你只要知道0为假,1为真就可以了,判断和逻辑运算符一样。
也许我说的很啰嗦,呵呵。

评分

参与人数 2技术分 +1 黑马币 +10 收起 理由
yekong262 + 10 赞一个!
FFF + 1 鼓励新同学多多回答与提问。

查看全部评分

回复 使用道具 举报
这个你记得意思就好了,什么时候用。我们都是记忆在代码里的,你写一些代码就能记住了。
只要晓得 || && 有短路见效果就好了,不晓得也没关系毕竟他们的运行结果是不一样。你可以分清楚 | & 就可以分清楚 | ||

评分

参与人数 2黑马币 +13 收起 理由
yekong262 + 10 很给力!
FFF + 3 神马都是浮云

查看全部评分

回复 使用道具 举报
主要用于逻辑判断,非常典型的一个应用是判断用户注册时是否在表单中填写了内容。如果用户没有在表单中填写内容,当用户准备填写下一个表单内容时,用户界面会出现提示信息,提示用户填写内容,即也就是通过AJAX进行表单验证。代码如下: if(userName!=null &&  userName.trime().length>0){.....}else{.....}

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 鼓励分+1

查看全部评分

回复 使用道具 举报
  int a = 3;
  a = a++;  //右边a的值是3,先赋值给左边的变量a,也就是变量本身,所以它值还是3
  System.out.println(a); //3
  a = ++a; //a的值是3,先自增变成4,再赋值给左边,最终a是4
  System.out.println(a); //4

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马