C#.net-|| OR 运算符不正常。似乎正在作为 AND
C# .net - || OR operator not behaving. Seems to be working as AND
这可能只是我,但我一直在尝试在 c# 中做一个 do...while 循环,如果两个条件之一为真,循环将结束。
我正在使用||操作员。 Google 告诉我这是或,但我的循环仅在两个条件都为真时才结束。我做错了什么?
这是一个代码示例:
int sugar=0, salt=0, value=0;
string tLine;
Console.WriteLine("Enter integer values to add to Sugar and Salt.");
Console.WriteLine("The loop should end when either one reaches 10 or more.");
do {
Console.Write("Sugar? =");
tLine = Console.ReadLine();
int.TryParse(tLine, out value);
sugar =sugar+value;
Console.Write("Salt? =");
tLine = Console.ReadLine();
int.TryParse(tLine, out value);
salt =salt+value;
}while ((sugar<10) || (salt<10));
Console.WriteLine("Sugar={0}, Salt={1}", sugar, salt);
Console.ReadKey();
或者你写
while ((sugar<10) && (salt<10));
只要两者都低于 10,while
就会继续。
每次满足条件时执行循环。所以你必须把它改成:
while ((sugar<10) && (salt<10))
或
while (!((sugar>=10) || (salt>=10)));
因为英文条件是:
"The loop should end when either one reaches 10 or more."
那么条件应该是:
do
{
...
}
while (Sugar < 10 && Salt < 10);
您需要使用“&&”。然后,如果 Salt 或 Sugar 变为 >= 10,&&
的结果将是 false
,因此循环将终止。
但是,您可以通过反转比较结果来使用 ||
,如下所示:
while (!(Sugar >= 10 || Salt >= 10))
但这更难阅读。
有些语言有 until
,但 C# 没有。如果是这样,它看起来像:
until (Sugar >= 10 || Salt >= 10)
换句话说,until (condition)
和while (!condition)
真的是一样的。
这可能只是我,但我一直在尝试在 c# 中做一个 do...while 循环,如果两个条件之一为真,循环将结束。
我正在使用||操作员。 Google 告诉我这是或,但我的循环仅在两个条件都为真时才结束。我做错了什么?
这是一个代码示例:
int sugar=0, salt=0, value=0;
string tLine;
Console.WriteLine("Enter integer values to add to Sugar and Salt.");
Console.WriteLine("The loop should end when either one reaches 10 or more.");
do {
Console.Write("Sugar? =");
tLine = Console.ReadLine();
int.TryParse(tLine, out value);
sugar =sugar+value;
Console.Write("Salt? =");
tLine = Console.ReadLine();
int.TryParse(tLine, out value);
salt =salt+value;
}while ((sugar<10) || (salt<10));
Console.WriteLine("Sugar={0}, Salt={1}", sugar, salt);
Console.ReadKey();
或者你写
while ((sugar<10) && (salt<10));
只要两者都低于 10,while
就会继续。
每次满足条件时执行循环。所以你必须把它改成:
while ((sugar<10) && (salt<10))
或
while (!((sugar>=10) || (salt>=10)));
因为英文条件是:
"The loop should end when either one reaches 10 or more."
那么条件应该是:
do
{
...
}
while (Sugar < 10 && Salt < 10);
您需要使用“&&”。然后,如果 Salt 或 Sugar 变为 >= 10,&&
的结果将是 false
,因此循环将终止。
但是,您可以通过反转比较结果来使用 ||
,如下所示:
while (!(Sugar >= 10 || Salt >= 10))
但这更难阅读。
有些语言有 until
,但 C# 没有。如果是这样,它看起来像:
until (Sugar >= 10 || Salt >= 10)
换句话说,until (condition)
和while (!condition)
真的是一样的。