zoukankan      html  css  js  c++  java
  • Java中&和&&的区别

    马上就找工作了,看笔试题突然看到这个,觉得比较有意思。

    我想应该有很多人在编码的过程中都遇到过,不管是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

    stareblankly.cn
  • 相关阅读:
    第三章第四章总结
    java学习2打架代码编写
    windows server 2008 远程桌面(授权、普通用户登录)
    Windows组建网络服务 ——WEB服务器的组建与架构
    windows server 2008 站点系列
    将 Ubuntu 加入到 Windows 2003 AD域
    Windows Server 2008组策略管理与配置
    AD用户设置系列
    利用windows 2003实现服务器群集的搭建与架设
    server2008 跨进新的平台(三)高端的备份还原工具
  • 原文地址:https://www.cnblogs.com/stareblankly/p/4755059.html
Copyright © 2011-2022 走看看