Operator '&&' cannot be applied to operand of type 'bool' and 'int'

后端 未结 4 1795
庸人自扰
庸人自扰 2021-01-12 10:49

I have an if elseif statement to check marks and grade the marks according to the condition.

int marks;
string grade;

if (marks>=80 && marks!>         


        
相关标签:
4条回答
  • 2021-01-12 11:09

    Other answers have made it known that the main problem is that !> isn't an operator.

    I'd like to suggest that since you're testing whether marks lies within particular ranges that you take an additional further step to format your conditional expressions to use the following pattern:

    if (80 <= marks && marks <= 100)
    {
      grade = "A1";
    }
    else if (70 <= marks && marks <= 79)
    {
      grade = "A2";
    }
    

    It's a simple and maybe subtle change, but I think it makes the range check intent much more clear.

    0 讨论(0)
  • 2021-01-12 11:10
    int marks;
    string grade;
    
    if ((marks>=80) && !(marks > 100))
    {
    grade = "A1";
    }
    else if ((marks>=70) && !(marks > 79))
    {
    grade = "A2";
    }
    
    0 讨论(0)
  • 2021-01-12 11:13

    you have used the wrong operator,

    it must be.

    int marks;
    string grade;
    
    if (marks>=80 && marks<=100)
    {
      grade = "A1";
    }
    elseif (marks>=70 && marks<=79)
    {
      grade = "A2";
    }
    

    Also you can do is

    int marks;
    string grade;
    
    if (marks>=80 && !(marks>100))
    {
      grade = "A1";
    }
    elseif (marks>=70 && !(marks>79))
    {
      grade = "A2";
    }
    
    0 讨论(0)
  • 2021-01-12 11:32

    That is not a real operator:

    !>
    

    Not Greater Than would be <= (Less Than or Equal To)

    EDIT: What you are trying to say could actually also be expressed using the ! operator. But it would be

    !(marks > 100 )
    
    0 讨论(0)
提交回复
热议问题