Java中|、||、&、&&的各种用法和区别

来源:互联网 发布:javascript中文手册 编辑:程序博客网 时间:2024/04/28 22:52
对于一般的程序来说,逻辑判读是不可避免的。进行逻辑判断一般使用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时就停止进行了,但第二句仍然会继续运行,虽然看似区别不大,但是对于以后的程序来说这种判断就可能成百上千,那么它的优化重要性就会被放大。
原创粉丝点击