评估中意外的退出条件

问题描述 投票:0回答:1

我对这个代码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# loops while-loop
1个回答
0
投票

0 % 2 == 1
- 假

int.TryParse("3")
=真

!int.TryParse("3")
=假

你有 (false || false) - while 循环条件应该为 true 才能继续工作。

对于第二个代码,您首先设置 Num,因此

3 % 2 == 1
- true

© www.soinside.com 2019 - 2024. All rights reserved.