我有一个if elseif语句来检查标记并根据条件对标记进行评分。
int marks;
string grade;
if (marks>=80 && marks!>100)
{
grade = "A1";
}
else if (marks>=70 && marks!>79)
{
grade = "A2";
}
依旧.....
但是,当我编译它时,我得到了
运营商'&&'不能应用于'bool'和'int'
类型的操作数
帮我修好它。谢谢你。
答案 0 :(得分:13)
这不是一个真正的运营商:
!>
不大于<=
(小于或等于)
!(marks > 100 )
答案 1 :(得分:4)
你使用了错误的操作符,
必须是。int marks;
string grade;
if (marks>=80 && marks<=100)
{
grade = "A1";
}
elseif (marks>=70 && marks<=79)
{
grade = "A2";
}
你也可以做到
int marks;
string grade;
if (marks>=80 && !(marks>100))
{
grade = "A1";
}
elseif (marks>=70 && !(marks>79))
{
grade = "A2";
}
答案 2 :(得分:4)
其他答案让人们知道主要问题是!>
不是运营商。
我想建议,既然您正在测试marks
是否位于特定范围内,那么您需要采取进一步的步骤来格式化条件表达式以使用以下模式:
if (80 <= marks && marks <= 100)
{
grade = "A1";
}
else if (70 <= marks && marks <= 79)
{
grade = "A2";
}
这是一个简单而且可能是微妙的变化,但我认为这使得范围检查意图更加明确。
答案 3 :(得分:1)
int marks;
string grade;
if ((marks>=80) && !(marks > 100))
{
grade = "A1";
}
else if ((marks>=70) && !(marks > 79))
{
grade = "A2";
}