我可以在while循环中有更多条件吗?

时间:2019-06-18 20:16:38

标签: c# while-loop conditional-statements

我能问一下我是否可以在一个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,但是在我的程序中,我有一个无限循环。

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=5b=true。由于b永远不会为真,因此您最终陷入了无限循环。

答案 4 :(得分:0)

我不确定您要查找的确切行为,但是有三个类似的选项可以编写示例循环,具体取决于您希望两个条件如何表现:

while(a != 5 || b != true) {
a++;
}

如果以下情况循环将继续:a != 5评估为“ true”或b!= true评估为“ true”,或者a != 5b!= true两者均评估为“ true”。第一次两个表达式的计算结果均为“ false”时,循环将退出。

while(a != 5 && b != true) {
a++;
}

如果a != 5b!= true都评估为“ true”,则循环将继续。这些表达式中的一个或两个第一次计算为“ false”时,循环将退出。

异或

while((a != 5 && b != true) || (a == 5 && b == true  )) {
a++;
}

如果a != 5b!= true都评估为“ true”,或者两者都评估为“ false”,则循环将继续。这两个表达式第一次 完全一个时,其循环将退出。