问题1:您不应该使用semicolon ;
关闭while循环。如果你关闭它,它将不会进入循环,但你应该在do-while
循环中使用它。
问题2:您应该使用双和号&&
进行逻辑与操作。
问题3:您不应该比较null
与integer
。
解决方案1:
while(Number_Of_Fruits > 0 && Number_Of_Fruits <11)
{
Console.WriteLine("Please Insert a Number Between 1 and 11");
Number_Of_Fruits = Convert.ToInt32(Console.ReadLine());
}
解决方案2:我觉得do-while
循环适合最好的给你。
int Number_Of_Fruits = 0;
do
{
Console.WriteLine("Please Insert a Number Between 1 and 11");
Number_Of_Fruits = Convert.ToInt32(Console.ReadLine());
if(Number_Of_Fruits > 0 && Number_Of_Fruits < 11)
{
//do whatever you want
}
} while (Number_Of_Fruits > 0 && Number_Of_Fruits < 11) ;
解决方案3:,如果你要处理的更好的方式,用户输入您可以使用Int32.TryParse()
代替Convert.ToInt32()
int Number_Of_Fruits = 0;
do
{
Console.WriteLine("Please Insert a Number Between 1 and 11");
if (Int32.TryParse(Console.ReadLine(), NumberStyles.None, CultureInfo.InvariantCulture, out Number_Of_Fruits))
{
if(Number_Of_Fruits > 0 && Number_Of_Fruits < 11)
{
//do whatever you want
}
}
else
{
Console.WriteLine("User Input is Invalid (not a number) -> Terminating");
}
} while (Number_Of_Fruits > 0 && Number_Of_Fruits < 11) ;
应该使用逻辑和('&&')。另外,'null <11'是无效的语法..不确定哪里有'null'来自那里。 – user2864740
因此And应该在括号 – user3063971
@ user2864740中使用'&'与'&&'在逻辑上没有区别。 –