• java中&和&& | 和||的区别


    我想很多人在学习java的时候,或者其他语言(如:C#,.Net等)都会遇到

    &和&&

    然而,如果你没有真正的理解他们的意思,这会给你思路上面带来很大的麻烦

    在这篇blog中,当你看完了以后,你会发现,很容易就把他们给区分开了

    下面是我的demo

    复制代码
     1 /**
     2  * 
     3  */
     4 package com.b510.test;
     5 
     6 /**
     7  * @author Jone Hongten
     8  * @create date:2013-11-2
     9  * @version 1.0
    10  */
    11 public class Test {
    12 
    13     public static void main(String[] args) {
    14         String str = null;
    15         if(str != null && !"".equals(str)){
    16             //do something
    17         }
    18         if(str != null & !"".equals(str)){
    19             //do something
    20         }
    21     }
    22 }
    复制代码

    我们现在可能有一些模糊不清,现在我们先看看&和&&的电路问题:

    对于:&&

    if(str != null && !"".equals(str))

    当: str != null 的时候,接下来才会去执行: !"".equals(str)

    如果: str != null为false,那么这个时候,程序是处于短路的情况,则,!"".equals(str) 是不会执行的。

    但是对于:&

    if(str != null & !"".equals(str))

    不管: str != null 的结果如何(即true,false),程序都会执行: !"".equal(str)

    电路问题总结:

    对于:&   -- >  不管怎样,都会执行"&"符号左右两边的程序

    对于:&& -- >  只有当符号"&&"左边程序为真(true)后,才会执行符号"&&"右边的程序。

    下面来说说运算规则:

    对于:&  -- >  只要左右两边有一个为false,则为false;只有全部都为true的时候,结果为true

    对于:&& -- > 只要符号左边为false,则结果为false;当左右都为true时,则结果为true

    | 和 ||  其实是和上面的意思是一样的 

    |  -- >  只要左右两边有一个为false,则为false;只有全部都为true的时候,结果为true

    ||-- > 只要符号左边为false,则结果为false;当左右都为true时,则结果为true

  • 相关阅读:
    实现一个简单的Form授权 How to: Implement Simple Forms Authentication
    寄存器寻址方式
    HDU2094 产生冠军
    HDU1060 Leftmost Digit 数论
    HDU1496 Equations [hash]
    HDU1298 T9 字典树 DFS
    HDU1051 Wooden Sticks
    HDU1800 Flying to the Mars
    HDU1285 确定比赛名次 拓扑排序
    HDU1716 排列2 组合数
  • 原文地址:https://www.cnblogs.com/www123----/p/7857243.html
Copyright © 2020-2023  润新知