当前位置: 首页 > 知识库问答 >
问题:

Java逻辑算子短路

东方俊明
2023-03-14

哪个集合是短路的,复杂条件表达式是短路的确切含义是什么?

public static void main(String[] args) {
  int x, y, z;

  x = 10;
  y = 20;
  z = 30;

  // T T
  // T F
  // F T
  // F F

  //SET A
  boolean a = (x < z) && (x == x);
  boolean b = (x < z) && (x == z);
  boolean c = (x == z) && (x < z);
  boolean d = (x == z) && (x > z);
  //SET B    
  boolean aa = (x < z) & (x == x);
  boolean bb = (x < z) & (x == z);
  boolean cc = (x == z) & (x < z);
  boolean dd = (x == z) & (x > z);

}

共有3个答案

凌联
2023-03-14

短路意味着如果第一个操作员决定最终结果,则不会检查第二个操作员。

例如:表达式为:真||假

在||的情况下,我们只需要其中一边为真。所以如果左手边为真,检查右手边就没有意义了,因此根本不会检查。

同样,错误

万一

丌官绍元
2023-03-14

集合A使用短路布尔运算符。

在布尔运算符的上下文中,“短路”的意思是,对于一组布尔值b1,b2,…,bn,一旦这些布尔值中的第一个为真(||)或假(

例如:

// 2 == 2 will never get evaluated because it is already clear from evaluating
// 1 != 1 that the result will be false.
(1 != 1) && (2 == 2)

// 2 != 2 will never get evaluated because it is already clear from evaluating
// 1 == 1 that the result will be true.
(1 == 1) || (2 != 2)
燕飞文
2023-03-14

<代码>

<代码>

每个操作器只有一种短路情况,它们是:

让我们用一个简单的例子来比较这些行为:

public boolean longerThan(String input, int length) {
    return input != null && input.length() > length;
}

public boolean longerThan(String input, int length) {
    return input != null & input.length() > length;
}

第二个版本使用非短路运算符

 类似资料:
  • 问题内容: 我可以在MySQL 5.5的子句中使用任何短路逻辑运算符(特别是短路和短路)吗?如果没有,那还有什么选择? 在这个小提琴中可以找到关于我的问题的抽象观点以及对我为什么需要它的解释: http://sqlfiddle.com/#!2/97fd1/3 实际上,我们正在数百个国家/地区的数以千计的城市中的数百万家书店中查找数百万本图书,这就是为什么我们无法接受我们发送的每个查询都收到不必要信

  • 问题内容: 哪一组短路,这到底意味着复杂的条件表达式短路了? 问题答案: 在与运营商“短路”,这意味着如果没有必要,他们不评价的右手边。 在与运营商,如逻辑运算符时,始终评估两侧。 每个操作员只有一种短路情况,它们是: -不必知道右侧是什么,结果必须是 -不必知道右侧是什么,结果必须是 让我们在一个简单的示例中比较行为: 第二个版本使用非短路运算符,并将抛出,但第一个版本将无例外地返回;

  • 逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。 逻辑运算符是对布尔型变量进行运算,其结果也是布尔型,具体如表 1 所示。 表 1 逻辑运算符的用法、含义及实例 运算符 用法 含义 说明 实例 结果 && a&&b 短路与 ab 全为 true 时,计算结果为 true,否则为 false。 2>1&&3<4

  • egg 发送短信逻辑 service 'use strict'; const Service = require('egg').Service; class UserService extends Service { /** * 发送验证码 */ async sendCode() { //1. 获取用户手机号 const { phone } = this

  • 这个问题不是关于优化代码的问题,而是一个关于短路逻辑运算符和普通逻辑运算符性能差异的技术问题,这可以归结为它们在硬件上如何执行。 是的,如果右操作数是昂贵的,那么尝试不求值它是有益的。但是对于像这样的简单条件,假设这些是原子变量,非短路逻辑运算符可能执行得更快。我说的对吗? 我假设短路逻辑运算符使用分支(没有官方来源,只是自己想的),因为如果不这样的话,你如何在按顺序执行指令的同时做出那些跳跃呢?

  • and, or, not 其中,and 和 or 与 C 语言区别特别大。 在这里,请先记住,在 Lua 中,只有 false 和 nil 才计算为 false,其它任何数据都计算为 true,0 也是 true! and 和 or 的运算结果不是 true 和 false,而是和它的两个操作数相关。 a and b: 如果 a 为 false,则返回 a;否则返回 b a or b: 如果 a