我能问一下我是否可以在一个while循环中同时具有两个条件?
例如:
我已经用自己的代码尝试了几乎所有内容。
int a = 0;
bool b = false;
while(a!=5 || b!=true) {
a++;
}
Console.WriteLine("A is successfuly loaded into 5.");
Console.WriteLine("Bool is still " + b);
我希望输出为5,但是在我的程序中,我有一个无限循环。
答案 0 :(得分:0)
您有一个无限循环,因为b
始终为false,因此循环继续,因为||
的意思是OR
,并且您已经实现了它可以持续到{{1 }}不是5 OR a
是不正确的。
答案 1 :(得分:0)
变量b设置为false,并且不会更改。
因此,b!=true
的条件始终为真。
此条件位于“ or”(||
)运算符的右侧。
因此,出现无限循环。
答案 2 :(得分:0)
由于您的第二个条件,这是一个无限循环。
while(a!=5 || b!=true)
使用||
(OR)运算符,这意味着只要条件之一为真,则整个条件为真
T || F = T --->正确或错误==正确
F || T = T ---> False或True == True
T || T = T ---> True或True == True
F || F = F --->错误或错误==错误
您分配了b = false
,然后检查b!=true
(相当于b == false
[这是您分配的内容])。此条件为true
,因此它无限进入循环。
a!=5 || b!=true
都必须为false才能退出循环。
答案 3 :(得分:0)
在设计具有多个条件的支票时,关键是考虑&&
和||
操作的工作方式。使用||
将导致循环继续,直到两者条件为假。使用&&
将导致循环继续,直到其中一个条件为假。
在您的情况下,您使用了||
,因此循环将持续到a=5
和b=true
。由于b永远不会为真,因此您最终陷入了无限循环。
答案 4 :(得分:0)
我不确定您要查找的确切行为,但是有三个类似的选项可以编写示例循环,具体取决于您希望两个条件如何表现:
或
while(a != 5 || b != true) {
a++;
}
如果以下情况循环将继续:a != 5
评估为“ true”或b!= true
评估为“ true”,或者a != 5
和b!= true
两者均评估为“ true”。第一次两个表达式的计算结果均为“ false”时,循环将退出。
和
while(a != 5 && b != true) {
a++;
}
如果a != 5
和b!= true
都评估为“ true”,则循环将继续。这些表达式中的一个或两个第一次计算为“ false”时,循环将退出。
异或
while((a != 5 && b != true) || (a == 5 && b == true )) {
a++;
}
如果a != 5
和b!= true
都评估为“ true”,或者两者都评估为“ false”,则循环将继续。这两个表达式第一次 完全一个时,其循环将退出。