我对这个代码1有问题,当我发送一个像3这样的奇数数字时,它不会重复do中的代码,但代码2它工作得很好。
int Num = 0;
do
{
Console.WriteLine("Enter The Number ");
} while (Num % 2 == 1 || !int.TryParse(Console.ReadLine(), out Num));
Console.WriteLine(Num);
int Num = 0;
do
{
Console.WriteLine("Enter The Number ");
} while (!int.TryParse(Console.ReadLine(), out Num) || Num % 2 ==1 );
Console.WriteLine(Num);
我认为他再次重复了 do 中创建的代码
0 % 2 == 1
- 假
int.TryParse("3")
=真
!int.TryParse("3")
=假
你有 (false || false) - while 循环条件应该为 true 才能继续工作。
对于第二个代码,您首先设置 Num,因此
3 % 2 == 1
- true