问题标签 [logical-operators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
8653 浏览

c++ - C++ 中是否存在非短路逻辑“与”?

tl;dr:C++ 中是否存在非短路逻辑与(类似于 &&)?

我有 2 个要调用的函数,并使用返回值来计算第三个复合函数的返回值。问题是我总是希望这两个函数都进行评估(因为它们输出有关系统状态的日志信息)

IE:

当然,函数中的条件并不是那么简单,是的,我意识到我可以使用临时变量来存储两个函数的返回,然后对临时变量执行“短路”逻辑,但是我想知道是否有一种“优雅”的语言解决方案可以在 Func3 中保持单行返回,同时仍然从两个函数中获取日志消息。


回复摘要:

“按位”运算符 | 和 & 可用于获得效果,但前提是返回类型为 bool。我在 ANSI C++ 规范中没有提到这一点。据我所知,这是有效的,因为“bool”被转换为int(true = 1,false = 0),然后使用按位运算符,然后将其转换回bool。

也可以使用运算符 " +" 和 " "。*这在 ANSI C++ 规范中没有提到,但可能由于与上述相同的原因而起作用。" +" 给出 "or" 因为 true 被转换为 1,然后除了 0 之外的任何东西都被转换回 true。" *" 适用于 "and" 因为 1 (true) * 0 (false) == 0(false) 和 1(true) * 1(true) == 1(true)

这两者似乎都依赖于隐式类型转换为整数然后返回布尔。这两者都可能会搞砸任何试图维护代码的人。

其他回答归结为“只使用临时人员”或“实施你自己的”,这不是问题。目标是查看是否已经在 C++ 标准中实现了一个运算符来执行此操作。

0 投票
7 回答
10404 浏览

java - Java短路评估

我认为 Java 有短路评估,但这一行仍然抛出空指针异常:

在这种情况下perfectAgentnull,所以我只希望整个表达式返回false,但我的应用程序仍然在这条线上崩溃,并出现 NullPointerException。

编辑,一般回应:

由于perfectAgentis null,不应该执行右边的任何内容&&,因为表达式不可能为真。更重要的是,它不可能执行,perfectAgent.getAddress()因为perfectAgent它不包含有效的引用(它是 null 和 all)。我正在尝试使用短路评估来不必在单独的语句中检查 null,因为这会使逻辑更加草率。

编辑 2(或者,我是个白痴):是的,就像生活中的许多事情一样,你在向世界宣布你是个白痴之后就会立即找到答案。在这种情况下,我在执行其他操作时关闭了 Eclipse 的自动构建并且没有重新打开它,因此我正在调试与我的源代码不匹配的类文件。

0 投票
4 回答
1173 浏览

c - C中赋值的逻辑值

两部分问题。

(curr_ptr = (void*)curr_data[1])从逻辑上讲,评估结果是什么。TRUE?

另外,我知道它相当骇人听闻,但while声明是合法的 C 吗?我必须经过极大的扭曲才能将作业放在代码中的其他位置,所以如果我可以把它留在那里,我会非常好,但如果它太令人震惊以至于让每个人的眼球都燃烧起来,我会改变它.

0 投票
1 回答
631 浏览

django - 在 django-query 中实现逻辑解析器

这将是一个“长篇”。我包含尽可能多的代码和解释......如果有必要,我不会放弃代码。

我正在尝试在 django 查询系统中实现逻辑解析器。用户可以在其中针对应用于样本的标签提供复杂的查询。这本质上是科学样本库的一部分,用户可以在其中应用定义的标签(组织类型、研究的疾病等)。然后,他们可以创建由对这些标签的逻辑查询定义的样本的持久“篮子”。

将返回 Sample1。我使用了一个疯狂的 string-eval hack 来创建一组Q()对象:

但是,这在任何需要复杂的操作顺序或按 () 分组的情况下都会失败。给定相同的示例数据,查询:(TagA OR TagB) AND NOT TagD应该返回 Sample1、Sample4 但不返回。我已经实现了一个“一次一个”函数,它可以获取一个 Sample 对象并执行查询。但是,在我的实际数据库中,我有 ~40,000 个样本和 ~400 个标签(每个样本约 ~7 个),迭代技术需要 ~4 分钟才能完成所有样本。所以我每晚计算篮子,然后在白天把它们冷冻起来。我担心当我开始策划更多的篮子、样本和标签时,这将无法扩展。

有什么建议么?

0 投票
5 回答
2032 浏览

javascript - (myVar && foo()) 在 JavaScript 中是什么意思?

上面的代码是什么意思?它相当于什么?

我认为它在一条线上运行。

0 投票
14 回答
3845 浏览

c++ - 在 C++ 中计算 && (and) 运算符的哪一侧(左侧或右侧)

和 && 运算符评估哪个顺序

例如下面的代码

抛出了一个异常,即 alpha 正在被使用而没有被启动。我认为 && 左边的表达式总是会首先启动 alpha 的值,但似乎我可能错了

任何的想法?

谢谢

0 投票
14 回答
510718 浏览

batch-file - DOS批处理中的逻辑运算符(“and”、“or”)

您将如何在 DOS 批处理文件中实现逻辑运算符?

0 投票
2 回答
182 浏览

php - 在 for 循环中使用 AND 与 &&(与优先级无关?)

为什么这段代码会打印“你好!” 四次,然后打印“1”:

虽然这不会打印出“你好!” 根本,然后打印“1”:

我知道 AND 和 && 有不同的优先级,但这似乎不适用于这里。我错过了什么?(我正在使用上面代码的变体,因为我将在 for 循环中使用 $blah,并且我想为其设置值)。谢谢你的帮助!

0 投票
8 回答
28210 浏览

javascript - If 语句不适用于 And (&&) 运算符

我很难写出看似简单的 if 语句!我需要它来说明 mod 是否不等于 a、b 或 c - 然后执行此操作。这是我正在尝试但没有成功的方法:

当我在我的编辑器中输入它时,它说有一个错误,特别是“实体名称必须紧跟在实体引用中的 '&' 之后。” ..当我去测试时不工作。

任何帮助表示赞赏!


更新:网址:esber.squarespace.com

完整脚本:

我希望站点中的每个页面在页面加载时自动重定向到验证页面,除非它是验证页面 (/verify)、“您未验证”页面 (/not-verified) 或登录页面 (/ login) -- 除非用户已经通过设置 sessvars 进行了验证,否则他们可以继续访问主页。

为了测试这一点,我去 esber.squarespace.com 并单击右侧的一个菜单项(当我完成页面时,此菜单最终会被隐藏) - 当我尝试转到另一个页面而不验证我的首先我应该被重定向回 /verify 页面,但这并没有发生。

如果我将脚本修改为:

然后它工作正常(?)

0 投票
3 回答
82 浏览

php - 如何验证数据类型不匹配?(不是===假)

PHP中三等式匹配的反义词是什么?

!==用法是否正确?谢谢你的帮助。