您的位置:首页 > 编程语言 > Java开发

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时就停止进行了,但第二句
仍然会继续运行,虽然看似区别不大,但是对于以后的程序来说这种判断就可能成百上千,那么它的
优化重要性就会被放大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: