我是C#的新手,并且理解if语句是如何工作的我编写了这些代码但是它似乎有问题。当我写的是50或更大且小于60的东西时它表示Passed但是else if语句不管怎么样。每当我写出更大的东西,然后我的程序就会关闭。
Console.WriteLine("Please state your marks........");
string uservalue = Console.ReadLine();
int x = Convert.ToInt32(uservalue);
if (x >=50)
{
if ( x <= 59)
{
Console.WriteLine("You Passed");
}
}
else if (x >=60)
{
Console.WriteLine("Passed Grade B");
}
Console.ReadLine();
答案 0 :(得分:4)
...
if (x >= 50 && x < 60) {
Console.WriteLine("You Passed");
}
else if (x >= 60) {
Console.WriteLine("Passed Grade B");
}
Console.ReadLine();
...
答案 1 :(得分:3)
if (x >= 50)
的条件比if (x >= 60)
弱。这意味着如果前者是true
,那么程序控制从不考虑(x >= 60)
的情况。
此处的解决方案是首先处理(x >= 60)
案例。
答案 2 :(得分:1)
您应该交换条件,代码应如下所示,并且不需要额外条件检查&lt; = 59:
Console.WriteLine("Please state your marks........");
string uservalue = Console.ReadLine();
int x = Convert.ToInt32(uservalue);
if (x >=60)
{
Console.WriteLine("Passed Grade B");
}
else if (x >=50)
{
Console.WriteLine("You Passed");
}
Console.ReadLine();
答案 3 :(得分:1)
首先,我建议您使用int.TryParse
而不是Convert.ToInt32
,因为用户可能会输入非整数值。并修复if条件;
string uservalue = Console.ReadLine();
int x;
if(!int.TryParse(uservalue,out x))
{
Console.WriteLine("Invalid Input ! ");
Console.ReadLine();
return;
}
if (x >= 50 && x < 60)
{
Console.WriteLine("You Passed");
}
else if (x >= 60)
{
Console.WriteLine("Passed Grade B");
}
答案 4 :(得分:0)
添加到您的第一个if语句&amp;&amp; x&lt; 60。
它应该看起来像if (x >=50 && x < 60)