java学习日志5—与和或,一个你经常用到但是却不了解的符号
2013-11-21 14:54
543 查看
当我们要同时判断多个逻辑运算的时候,就会用到:逻辑运算符
“&&”:运算符前后的操作返回结果都为真,结果为真
“||”:运算符前后的操作返回结果只要有一个为真,结果为真
我们通过代码来看
public class Test
{
public static void main (String
args[]){
[align=left] [/align]
[align=left] boolean a= true; //定义boolean变量a为true[/align]
[align=left] boolean b= false; //定义boolean变量b为true[/align]
[align=left] System. out.println( "a&&b="+(a&&b)); //与操作[/align]
[align=left] System. out.println( "a&b="+(a&b)); //与操作[/align]
[align=left] System. out.println( "a||b="+(a||b)); //或操作[/align]
[align=left] System. out.println( "a|b="+(a|b)); //或操作[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]返回结果:[/align]
[align=left]
[/align]
[align=left] a&&b=false[/align]
[align=left] a&b=false[/align]
[align=left] a||b=true[/align]
[align=left] a|b=true[/align]
[align=left]
[/align]
[align=left]从上面可以看出与和或的区别,下面我们通过详细的例子来看下与(&)和短路与(&&),或(|)和短路或(||)的差别[/align]
[align=left]
[/align]
[align=left]public class Test {[/align]
public static void main
(String args[]){
[align=left] //用具体的实例看起来更直观[/align]
[align=left] /*[/align]
[align=left] * 这里a可以正确的被执行[/align]
[align=left] * 而b不行(被除数为0)[/align]
[align=left] * 正常的情况下b应该会报错[/align]
[align=left] */[/align]
[align=left] int a=5/1; //定义正确的变量[/align]
[align=left] int b=5/0; //定义错误的变量[/align]
[align=left] [/align]
[align=left] System. out.println(a);[/align]
[align=left] System. out.println(b);[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left]}[/align]
[align=left] [/align]
[align=left]返回结果:[/align]
[align=left]
[/align]
Exception in thread "main" java.lang.ArithmeticException :
/ by zero
[align=left] at test.Test.main( Test.java:17 )[/align]
[align=left]
[/align]
[align=left]通过结果来看,我们的推理是正确的[/align]
[align=left]
[/align]
[align=left]现在我们先加入“&&”、“&”来看下它们之间的区别[/align]
[align=left]
[/align]
[align=left]1.测试&&[/align]
[align=left]
[/align]
public class Test
{
[align=left] @SuppressWarnings( "unused")[/align]
public static void main
(String args[]){
[align=left] [/align]
[align=left] //因为加入&&和&运算符,我们假设两个错误的值[/align]
if ( 5!=5&&5/0==0)
{
[align=left] System. out.println( "正确" );[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]执行结果:[/align]
[align=left]
[/align]
Exception in thread "main" java.lang.ArithmeticException :
/ by zero
[align=left] at test.Test.main( Test.java:16 )[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]出现被除数是0的错误[/align]
[align=left]
[/align]
[align=left]
[/align]
2.测试&
[align=left]
[/align]
[align=left]public class Test {[/align]
[align=left] @SuppressWarnings( "unused")[/align]
public static void main
(String args[]){
[align=left] [/align]
[align=left] //因为加入&&和&运算符,我们假设两个错误的值[/align]
if ( 5!=5&5/0==0)
{
[align=left] System. out.println( "正确" );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]执行结果:[/align]
[align=left]
[/align]
Exception in thread "main" java.lang.ArithmeticException :
/ by zero
[align=left] at test.Test.main( Test.java:13 )[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]仍然返回被除数是0的错误,这是因为“与”运算是将所有的程序运行完,那么或会出现怎么样的结果呢,我们来看看下面的代码[/align]
[align=left]
[/align]
[align=left]3.测试|[/align]
[align=left]
[/align]
public class Test
{
[align=left] @SuppressWarnings( "unused")[/align]
public static void main
(String args[]){
[align=left] [/align]
[align=left] //因为加入||和|运算符,我们假设一个正确的和一个错误的[/align]
if ( 5==5|5/0==0)
{
[align=left] System. out.println( "正确" );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]执行结果:[/align]
[align=left]
[/align]
Exception in thread "main" java.lang.ArithmeticException :
/ by zero
[align=left] at test.Test.main( Test.java:13 )[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]结果还是报错,被除数为0,这说明,或"|"运算也是要执行所有的语句,那短路或"||"呢,我们接着看[/align]
[align=left]
[/align]
[align=left]4.测试||[/align]
[align=left]
[/align]
public class Test
{
[align=left] @SuppressWarnings( "unused")[/align]
public static void main
(String args[]){
[align=left] [/align]
[align=left] //因为加入||和|运算符,我们假设一个正确的和一个错误的[/align]
if ( 5==5||5/0==0)
{
[align=left] System. out.println( "正确" );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left] [/align]
[align=left]执行结果:[/align]
[align=left]
[/align]
[align=left]正确[/align]
[align=left]
[/align]
[align=left]这说明短路或“||”只执行了代码中“5=5”就退出程序了,这对于或运算来说就是我们想要的效果,既达到了目的,又提高了代码的利用率[/align]
[align=left]
[/align]
“&&”:运算符前后的操作返回结果都为真,结果为真
“||”:运算符前后的操作返回结果只要有一个为真,结果为真
我们通过代码来看
public class Test
{
public static void main (String
args[]){
[align=left] [/align]
[align=left] boolean a= true; //定义boolean变量a为true[/align]
[align=left] boolean b= false; //定义boolean变量b为true[/align]
[align=left] System. out.println( "a&&b="+(a&&b)); //与操作[/align]
[align=left] System. out.println( "a&b="+(a&b)); //与操作[/align]
[align=left] System. out.println( "a||b="+(a||b)); //或操作[/align]
[align=left] System. out.println( "a|b="+(a|b)); //或操作[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]返回结果:[/align]
[align=left]
[/align]
[align=left] a&&b=false[/align]
[align=left] a&b=false[/align]
[align=left] a||b=true[/align]
[align=left] a|b=true[/align]
[align=left]
[/align]
[align=left]从上面可以看出与和或的区别,下面我们通过详细的例子来看下与(&)和短路与(&&),或(|)和短路或(||)的差别[/align]
[align=left]
[/align]
[align=left]public class Test {[/align]
public static void main
(String args[]){
[align=left] //用具体的实例看起来更直观[/align]
[align=left] /*[/align]
[align=left] * 这里a可以正确的被执行[/align]
[align=left] * 而b不行(被除数为0)[/align]
[align=left] * 正常的情况下b应该会报错[/align]
[align=left] */[/align]
[align=left] int a=5/1; //定义正确的变量[/align]
[align=left] int b=5/0; //定义错误的变量[/align]
[align=left] [/align]
[align=left] System. out.println(a);[/align]
[align=left] System. out.println(b);[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left]}[/align]
[align=left] [/align]
[align=left]返回结果:[/align]
[align=left]
[/align]
Exception in thread "main" java.lang.ArithmeticException :
/ by zero
[align=left] at test.Test.main( Test.java:17 )[/align]
[align=left]
[/align]
[align=left]通过结果来看,我们的推理是正确的[/align]
[align=left]
[/align]
[align=left]现在我们先加入“&&”、“&”来看下它们之间的区别[/align]
[align=left]
[/align]
[align=left]1.测试&&[/align]
[align=left]
[/align]
public class Test
{
[align=left] @SuppressWarnings( "unused")[/align]
public static void main
(String args[]){
[align=left] [/align]
[align=left] //因为加入&&和&运算符,我们假设两个错误的值[/align]
if ( 5!=5&&5/0==0)
{
[align=left] System. out.println( "正确" );[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]执行结果:[/align]
[align=left]
[/align]
Exception in thread "main" java.lang.ArithmeticException :
/ by zero
[align=left] at test.Test.main( Test.java:16 )[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]出现被除数是0的错误[/align]
[align=left]
[/align]
[align=left]
[/align]
2.测试&
[align=left]
[/align]
[align=left]public class Test {[/align]
[align=left] @SuppressWarnings( "unused")[/align]
public static void main
(String args[]){
[align=left] [/align]
[align=left] //因为加入&&和&运算符,我们假设两个错误的值[/align]
if ( 5!=5&5/0==0)
{
[align=left] System. out.println( "正确" );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]执行结果:[/align]
[align=left]
[/align]
Exception in thread "main" java.lang.ArithmeticException :
/ by zero
[align=left] at test.Test.main( Test.java:13 )[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]仍然返回被除数是0的错误,这是因为“与”运算是将所有的程序运行完,那么或会出现怎么样的结果呢,我们来看看下面的代码[/align]
[align=left]
[/align]
[align=left]3.测试|[/align]
[align=left]
[/align]
public class Test
{
[align=left] @SuppressWarnings( "unused")[/align]
public static void main
(String args[]){
[align=left] [/align]
[align=left] //因为加入||和|运算符,我们假设一个正确的和一个错误的[/align]
if ( 5==5|5/0==0)
{
[align=left] System. out.println( "正确" );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left]
[/align]
[align=left]执行结果:[/align]
[align=left]
[/align]
Exception in thread "main" java.lang.ArithmeticException :
/ by zero
[align=left] at test.Test.main( Test.java:13 )[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]
[/align]
[align=left]结果还是报错,被除数为0,这说明,或"|"运算也是要执行所有的语句,那短路或"||"呢,我们接着看[/align]
[align=left]
[/align]
[align=left]4.测试||[/align]
[align=left]
[/align]
public class Test
{
[align=left] @SuppressWarnings( "unused")[/align]
public static void main
(String args[]){
[align=left] [/align]
[align=left] //因为加入||和|运算符,我们假设一个正确的和一个错误的[/align]
if ( 5==5||5/0==0)
{
[align=left] System. out.println( "正确" );[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]}[/align]
[align=left] [/align]
[align=left]执行结果:[/align]
[align=left]
[/align]
[align=left]正确[/align]
[align=left]
[/align]
[align=left]这说明短路或“||”只执行了代码中“5=5”就退出程序了,这对于或运算来说就是我们想要的效果,既达到了目的,又提高了代码的利用率[/align]
[align=left]
[/align]
相关文章推荐
- JAVA学习日志 关于周易数字卦的一个算法
- JAVA学习日志 一个关于随机骰子1-1000计数的程序
- JAVA 学习日志 一个坦克游戏,关于数组对象、键盘监听、双缓冲、重写
- 做java程序员有一段时间了,但是感觉基础的东西了解的很少很少,我从现在开始从新开始。。。。。。。。。。。学习笔记(连载)给有需要的人
- 作为一个程序猿,是不是经常会用到.chm文档,但是我们可能会遇到这样那样的问题,比如.chm文档打不开
- java学习日志(五)-- 一个可爱的访问控制符实验
- RE:JAVA学习-了解对象和类+数组
- 一个优秀的Java程序员必须了解的GC机制
- JAVA学习51_ Java Split如何去除一个空格和多个空格
- java基础学习日志04
- java程序中没有错,但是项目上面显示一个红叉的解决办法
- java程序中没有错,但是项目上面显示一个红叉的解决办法
- Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
- 学习Java继承和多态时的一个小demo
- 成为一个Java的架构师要学习哪些知识?
- 成为一个Java的架构师要学习哪些知识?
- java中经常用到的自动装箱和自动拆箱
- 黑马程序员 java中关于异常的学习日志
- 我的Java学习--对c语言的了解
- Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它) 分类: Android 2015-07-04 21:40 17人阅读 评论(0) 收藏