我在测验中收到了这个问题,但我不确定为什么它会返回“ NOT”。
我知道此代码块中所有运算符的作用(!不是,&&检查两个操作数是否都为非零,等等),但是我不明白它们在此特定上下文中如何工作。请记住,我是编程的新手。)例如,是否要检查完成和计数值是否都大于零且大于MAX?
//Evaluate the following program logic and determine if the output string is "Completed" or "NOT".
int MAX = 100;
int count = 101;
Boolean done = true;
if(!(done && count > MAX))
Console.WriteLine("Completed");
else
Console.WriteLine("NOT");
答案 0 :(得分:3)
让我们一步一步地做。当我们将值放入!(done && count > MAX)
时,我们得到
!(true && 101 > 100)
允许添加括号以显示优先级或运算符
!(true && (101 > 100))
101 > 100
是否正确?是的,换句话说,它的值为true
,因此我们可以将其替换为:
!(true && true)
这里true && true
也被评估为true
,所以我们得到
!(true)
现在,!
的否定(true
运算符)将其反转为false
,这是if的 condition 的最终值,导致其{{1} }分支(将显示“ NOT”)。
答案 1 :(得分:1)
!
是NOT
运算符,所以!(true && true) == false
答案 2 :(得分:1)
您的条件是否为 如果(done为true并且count大于100)不为true 如果(done为false或count不大于100)。 根据您的逻辑,此条件不正确,因此这就是为什么它返回错误条件的原因