zoukankan      html  css  js  c++  java
  • &&和&(||和|)区别

    上代码,引出问题

    public class Test {
        private static int j = 0;
     
        private static Boolean methodB(int k) {
            j += k;
            return true;
        }
     
        public static void methodA(int i) {
            boolean b;
            b = i < 10 || methodB(4);换成b = i < 10 | methodB(4)结果如何?,什么时候输出0,4,8,12呢?
            b = i < 10 | methodB(8);
     
        }
     
        public static void main(String args[]) {
            methodA(0);
            System.out.println(j);
        }
    }
    

     答:&运算符有两种用法:

    (1)按位与;(2)逻辑与。

    &&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都 要求运算符左右两端的布尔值都是true整个表达式的值才是true。

    &&之所以称为短路运算是因为,如果&&左边的表 达式的值是false,右边的表达式会被直接短路掉,不会进行运算。

    很多时候我们可能都需要用&&而不是&,例如在验证用户登录 时判定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(“”),二者的顺序不能交换,更不能用&运算符,

    因为第一个条件如果不成立,根本不能进 行字符串的equals比较,否则会产生NullPointerException异常。

    注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如 此。

    这道题主要考的是"|"与"||"的区别
    用法:condition 1 | condition 2、condition 1 || condition 2
    "|"是按位或:先判断条件1,不管条件1是否可以决定结果(这里决定结果为true),都会执行条件2
    "||"是逻辑或:先判断条件1,如果条件1可以决定结果(这里决定结果为true),那么就不会执行条件2
  • 相关阅读:
    结对-五子棋游戏-开发过程
    团队-象棋游戏-设计文档
    课后作业-阅读任务-阅读提问-4
    团队-及格成绩查询系统-项目总结
    11.29-构建之法:现代软件工程-阅读笔记
    软件工程课程总结
    团队-及格成绩查询系统-最终程序
    团队-象棋游戏-团队一阶段互评
    课后作业-阅读任务-阅读提问-3
    课后作业-阅读任务-阅读笔记-3
  • 原文地址:https://www.cnblogs.com/lbloveab/p/7274071.html
Copyright © 2011-2022 走看看