评估时出现意外退出条件

Unexpected exit conditions on evaluation

提问人:Ai BilEnt 提问时间:9/7/2023 最后编辑:ΩmegaManAi BilEnt 更新时间:9/7/2023 访问量:45

问:

我对这个代码编号 1 有问题,当我发送一个像 3 这样的奇数时,它不会重复 do 中的代码,但代码编号 2 它工作得很好。

1

int Num = 0;
do
{
   Console.WriteLine("Enter The Number ");
} while (Num % 2 == 1 || !int.TryParse(Console.ReadLine(), out Num));
          
Console.WriteLine(Num);

2

int Num = 0;
do
{
   Console.WriteLine("Enter The Number ");
} while (!int.TryParse(Console.ReadLine(), out Num) || Num % 2 ==1 );
          
Console.WriteLine(Num);

我认为他再次重复了 do 中建立的代码

C# 循环 while 循环

评论

5赞 Matthew Watson 9/7/2023
当您使用运算符时,它将执行“布尔短路”——如果左边的表达式为 true,则不会执行右边的表达式。||||
1赞 Matthew Watson 9/7/2023
这意味着在第一个循环中,一旦用户输入奇数,表达式将永远不会执行 because is true。whileint.TryParse()Num % 2 == 1
0赞 Ai BilEnt 9/9/2023
如果第一个循环为 true,则 do 中的代码应该返回,但不幸的是这没有发生

答: 暂无答案