Java中&和&&的区别
2015-08-24 16:09
603 查看
马上就找工作了,看笔试题突然看到这个,觉得比较有意思。
我想应该有很多人在编码的过程中都遇到过,不管是Java也好,c也罢或者是C#,c++者等等......
贴一下我的demo
结果:
我们主要关注这两句就可以了。
不难看出,当我们使用&时前者为false 但是K的值为2,而当我们使用&&是前者为false,但是K的值为1.
说明当我们使用&的时候前者为false,但仍然执行了后面的K++,而我们是用&&的时候却没有。
故此我们得出结论:
&不管前一个表达式得到的值是true还是false,都会执行后一个表达式。而使用&&的时候,但前一个表达式得值为true时,就不会继续执行括号里面的表达式。
对于:& -- > 只要左右两边有一个为false,则为false;只有全部都为true的时候,结果为true
对于:&& -- > 只要符号左边为false,则结果为false;当左边为true,同时右边也为true,则结果为true
我想应该有很多人在编码的过程中都遇到过,不管是Java也好,c也罢或者是C#,c++者等等......
贴一下我的demo
public class demo { public static void main(String[] args) { demo.d1("i", 1); demo.d2("i", 1); demo.d3("i", 1); demo.d4("i", 1); } public static void d1(String i,int k){ if(i.equals("i")&1==k++){ System.out.println("&全部为true K="+k+",I="+i); } } public static void d2(String i,int k){ if(i.equals("A")&1==k++){ } System.out.println("&前者为false 后者为true K="+k+",I="+i); } public static void d3(String i,int k){ if(i.equals("i")&&1==k++){ System.out.println("&&全部为true K="+k+",I="+i); } } public static void d4(String i,int k){ if(i.equals("A")&&1==k++){ } System.out.println("&&前者为false 后者为true K="+k+",I="+i); } }
结果:
我们主要关注这两句就可以了。
&前者为false 后者为true K=2,I=i &&前者为false 后者为true K=1,I=i
不难看出,当我们使用&时前者为false 但是K的值为2,而当我们使用&&是前者为false,但是K的值为1.
说明当我们使用&的时候前者为false,但仍然执行了后面的K++,而我们是用&&的时候却没有。
故此我们得出结论:
&不管前一个表达式得到的值是true还是false,都会执行后一个表达式。而使用&&的时候,但前一个表达式得值为true时,就不会继续执行括号里面的表达式。
对于:& -- > 只要左右两边有一个为false,则为false;只有全部都为true的时候,结果为true
对于:&& -- > 只要符号左边为false,则结果为false;当左边为true,同时右边也为true,则结果为true
相关文章推荐
- Spring AOP 定义切入点
- RxJava系列之二 变换类操作符详解1
- Java设计模式之--代理模式学习
- spring揭秘 读书笔记 六 bean的一生
- spring揭秘 读书笔记 六 bean的一生
- 从零开始学JAVA DAY5
- java中观察者模式
- JAVA线程池的分析和使用
- 验证码实现(随机背景色及字体颜色,带扰乱线条)
- java,如何给一个任务设置超时限制
- 个人整理的一些java开发基础
- spring quartz
- Java逐行输出N*N螺旋矩阵,要求最小空间复杂度
- Java Eclipse(mac)环境使用maven 加载spring,hibernate 及java的一些配置
- SpringMVC+Mysql实例详解
- Spring Security + Hibernate Annotation Example
- Java____进程、线程学习、处理器调度(转)
- java使用poi解析或处理excel的时候,如何防止数字变成科学计数法的形式
- JDK配置环境变量
- hessian spring 调用