Java中|、||、&、&&的各种用法和区别
2017-05-20 21:30
211 查看
对于一般的程序来说,逻辑判读是不可避免的。进行逻辑判断一般使用if、while等等 比如if(a==0){ //执行语句 }、 while(a>0){ //执行语句 } 两者都是在判断括号中条件成立的时候再进行大括号中的语句,但是括号中只有一个条件 当需要多种条件混合判断的时候就需要|、||、&、&&操作符了。 其中|、||的相同点就是两者都是或判断。就是操作符左右两变量只要有1个成立那么 整体条件就是成立的. 举个栗子: int a=2; a>0|a>3; a>0||a>3; 简要分析一下:a=2,所以a>0 是 真 a>3 是 假,但是加上|或||那么整体条件都为真 除非左右两边都为假,或逻辑判断才会返回false,即两者有一个为真,整体就为真 同理&、&&的作用就是当两者有一个为假的时候,整体就为假。 这样就有很多人有疑问了,既然效果是一样的为什么设计两种呢。 仔细了解过Java的可能就知道|和||的区别以及&和&&的区别。 两者的区别就是|和&都是短路判断的。什么是短路判断? 比如上面的a>0|a>3;其中a>0为真,那么在判断的时候当第一个出现真了那么就不会再判断第二个 条件的真假了,直接返回true,同理当第一个条件为假那么&表达式整体就为假并且不会往下继续判断 那么了解了他们的区别那么怎么合理的使用它们呢 这里我们就简单的举个判断两个日期的大小例子。 public static void main(String[] args) { int year=2017; int month=5; int day=10; int year1=2017; int month1=4; int day1=11; System.out.println(year1>=year&month1>=month&day1>=day); System.out.println(year1>=year&&month1>=month&&day1>=day); } 这段程序都是返回false,当第一句输出判断时检测到month1>=month时就停止进行了,但第二句 仍然会继续运行,虽然看似区别不大,但是对于以后的程序来说这种判断就可能成百上千,那么它的 优化重要性就会被放大。
相关文章推荐
- equals 与 == 的区别和用法(C# & Java)
- 计算机基础--java中<< >> >>>的区别用法
- 2006-07-28 Java的常用包,"=="和"equals"的用法,基本数据类型与引用类型,对象的克隆
- 在java中null与""有什么区别----所有的语言都是这样子
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- package与import && Java Application和Java Applet的区别
- ArrayList Vector LinkedList 各种容器的区别与用法
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
- java中空串""与null的区别与判断
- Java中"equals"和"=="的区别
- JAVA中&&和&、||和|(短路与和逻辑与、短路或和逻辑或)的区别
- JAVA中this & super的用法
- input type="image" 和 img 用法区别
- java中""," ",null之间的区别
- Java容器类List、ArrayList、Vector及map、HashTable、HashMap的区别与用法
- Java中"equals"和"=="的区别
- Java异常处理中try,catch,finally的各种组合用法
- java中 各种集合的区别
- 第2章 Java编程基础——FAQ2.17 在执行与运算时, 运算符&和&&有什么区别?
- Delphi与Java用法区别