2011-12-02 84 views
6

Tengo una instrucción if elseif para marcar y calificar las calificaciones de acuerdo con la condición.El operador '&&' no se puede aplicar al operando de tipo 'bool' e 'int'

int marks; 
string grade; 

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

y así sucesivamente .....

embargo

, cuando compilo que me dieron

operador & & 'no se puede aplicar al operando de tipo 'int' y' int '

ayúdame a solucionarlo. gracias de antemano.

+2

'!>'? Pruebe '<='. – cHao

+0

buen pensamiento que solo puede coser letreros para hacer un operador. – Dani

+0

@ Dani: Tiene más sentido de lo que piensas. Después de todo, '<=' es "menor que o igual", y '! =' Significa "no igual". '!>' parece una traducción natural de "no mayor que". Solo sucede que no es válido C#. – cHao

Respuesta

3

Otras respuestas han hecho saber que el problema principal es que !> no es un operador.

me gustaría sugerir que, dado que se está probando si marks se encuentra dentro de los rangos particulares que usted toma un paso más adicional para dar formato a las expresiones condicionales para utilizar el siguiente patrón:

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

Es un simple y quizás un cambio sutil, pero creo que hace que el alcance del control de rango sea mucho más claro.

12

Eso no es un verdadero operador:

!> 

no es mayor que sería <= (menor o igual que)

EDIT: Lo que usted está tratando de decir en realidad podría también ser expresada mediante el ! operador. Pero sería

!(marks > 100) 
+0

no puedo creer lo tonto que soy. muchas gracias. Eso funciona. – Eppiey

3

que ha usado el operador mal,

que debe ser.

int marks; 
string grade; 

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

También se puede hacer es

int marks; 
string grade; 

if (marks>=80 && !(marks>100)) 
{ 
    grade = "A1"; 
} 
elseif (marks>=70 && !(marks>79)) 
{ 
    grade = "A2"; 
} 
+0

funcionó. TIL cómo usar '!' en si más. – Eppiey

+0

Gracias @Eppiey, el operador < or > no se puede usar con not, only = se puede usar con! =. –

1
int marks; 
string grade; 

if ((marks>=80) && !(marks > 100)) 
{ 
grade = "A1"; 
} 
else if ((marks>=70) && !(marks > 79)) 
{ 
grade = "A2"; 
} 
Cuestiones relacionadas