如何测试一个条件是不是为真?

Posted

技术标签:

【中文标题】如何测试一个条件是不是为真?【英文标题】:How to test if exactly one condition is true?如何测试一个条件是否为真? 【发布时间】:2021-08-05 07:46:04 【问题描述】:

如果我在 Pascal 中有一组布尔变量,我如何测试 其中一个是否是 True

【问题讨论】:

b1 xor b2 xor b3 如果它们都是真的,那么它们也是真的。你应该解决这个问题,说出你真正想要的——正好是一个真或三变量异或。此外,您应该说明您正在使用哪种语言,因为它们可能使用不同的句法特征。 显然没有简单的方法可以做到这一点,我在这篇文章中学到了这一点:link 【参考方案1】:

在 Pascal 中,您可以这样做:

if Integer(a) + Integer(b) + Integer(c) = Integer(true) then
    writeln("exactly one is true");

Integer(true) 进行比较很重要,因为它在不同版本的 Pascal 中可能是不同的值。

【讨论】:

我明白了。因为总和只能给整数 1 到只有 1 为真。 请注意,在 Delphi 中,布尔变量可能(取决于它的创建方式)与 1 = Ord(True) 不同。在这种奇怪的情况下,更安全的是Ord(a <> False) + Ord(b <> False) + Ord(c <> False) = 1。因为即使a 恰好是Boolean(4),我们也有Ord(a <> False) = Ord(True) = 1

以上是关于如何测试一个条件是不是为真?的主要内容,如果未能解决你的问题,请参考以下文章

shell条件测试,运算符,选择结构,for循环结构

shell中的条件判断if和测试

睡眠并检查直到条件为真

如何测试多个(2个或更多)布尔值是不是为真

我有以下测试代码。我怎样才能使这个条件为真

linux 命令 —— test 测试条件表达式