java语言中&&与& ||与|有什么区别

本文详细解析了Java中逻辑运算符(&&、||)与位运算符(&、|)的区别,尤其关注它们在布尔变量及整型变量上的表现,并强调了逻辑运算中的短路特性。

1、运算符两边的变量为boolean变量时
      先列出代码:

public class Test {
    public static void main(String[] args) {
        boolean a = false;
        boolean b = true;
        if (a && b) {
            // do something
            System.out.println("a&&b");
        }
        if (a & b) {
            // do something
            System.out.println("a&b");
        }
    }
}
虽然两个if语句打印结果时一样的!!!(都没有输出)
但是实际的执行过程却是不一样的(自己可以debug调试试试)
&& 逻辑运算and,当两个条件都为真的时候才为真。
||逻辑运算or,只要有一个条件为真就为真。
而& 和 | 属于位运算。
逻辑运算与位运算最大的区别在于
逻辑运算支持短路运算,
而位运算不支持短路运算。
短路运算就是 位运算if(条件1 & 条件2){}
当第一个条件不满足的时候还会判断条件2,
但是逻辑运算if(条件1 &&条件2){}
当第一个条件不满足的时候不会判断条件2.
逻辑|| 跟位运算| 同上。

2、运算符两边的变量为int类型变量时
      只能执行a&b的按位与运算或者a|b执行按位或运算。正常算即可

JavaScript和Java中`||`和`&&`运算符主要有以下区别: ### 返回值类型 - **JavaScript**:`||`和`&&`并不总是返回布尔值,而是返回参运算的表达式的值。`||`返回从左向右第一个为真的表达式,如果都为假就返回最后一个表达式;`&&`返回从左向右第一个为假的表达式,如果都为真就返回最后一个表达式 [^1]。 ```javascript let result1 = "hello" || "world"; // 返回 "hello" let result2 = 0 && 42; // 返回 0 ``` - **Java**:`||`和`&&`总是返回布尔值。它们对两个布尔表达式进行逻辑运算,最终结果只能是`true`或`false`。 ```java boolean result3 = true || false; // 返回 true boolean result4 = false && true; // 返回 false ``` ### 操作数类型 - **JavaScript**:操作数可以是任意类型,因为JavaScript是弱类型语言,会自动进行类型转换来判断真假值。常见的假值有`false`、`0`、`""`、`null`、`undefined`、`NaN`,其他值一般被视为真值。 ```javascript let value1 = null || "default"; // 返回 "default" ``` - **Java**:操作数必须是布尔类型的表达式,因为Java是强类型语言,要求参逻辑运算的操作数必须是布尔值。 ```java boolean condition1 = true; boolean condition2 = false; boolean result = condition1 || condition2; ``` ### 应用场景 - **JavaScript**:除了逻辑判断,还常用于取值和赋值操作,比如设置默认值。 ```javascript function greet(name) { let displayName = name || "Guest"; console.log(`Hello, ${displayName}!`); } ``` - **Java**:主要用于条件判断语句中,控制程序的流程,如`if`语句、`while`语句等。 ```java int num = 10; if (num > 5 && num < 15) { System.out.println("Number is in the range."); } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值