zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    技巧使用
    一些常用的安装包可选安装组件
    php ob_flush与flush的作用
    HTML5 localStorage本地存储
    php clearstatcache
    iconv
    Mysql数字类型转换函数
    POJ
    POJ
    POJ
  • 原文地址:https://www.cnblogs.com/www123----/p/7857243.html
Copyright © 2011-2022 走看看