Hola Di3goXx soy nuevo el el foro este mi primer tema con una pequeña duda
en realidad soy medio newbie..
estoy primer ciclo en el instituto. Me dejaron una serie de ejercicios en c # bien faciles a decir verdad pero en uno tenia un problemita... que una ves que se cumpliera un if me dejara de evaluar los siguientes .
les dejo el ejercicio
Calcule la calificación de un alumno en base a 3 notas, validar el ingreso de notas entre 0 y 100, considerar la siguiente tabla:
Promedio Calificación
90-100 A
80-89 B
70-79 C
50-69 D
0-49 E
este es mi codigo
hay 3 text box, 2 labels para salida de datos y un boton para calcular
double n1, n2, n3,s;
string fuerarango;
n1 = double.Parse(textBox1.Text);
n2 = double.Parse(textBox2.Text);
n3 = double.Parse(textBox3.Text);
if (n1 > 100 || n1 < 0)
label4.Text = "Ud ingreso un(os) valores mayor a 100";
if(n2>100 || n2<0)
label4.Text = "Ud ingreso un(os) valores mayor a 100";
if (n3>100 || n3<0)
label4.Text = "Ud ingreso un(os) valores mayor a 100";
s = (n1 + n2 + n3) / 3;
if (s >= 90 && s <= 100)
label4.Text = "Su calificacion es : A";
if (s >= 80 && s <= 89)
label4.Text = "Su calificacion es : B";
if (s >= 70 && s <= 79)
label4.Text = "Su calificacion es : C";
if (s >= 50 && s <= 69)
label4.Text = "Su calificacion es : D";
if (s >= 0 && s <= 49)
label4.Text = "Su calificacion es : E";
label5.Text = " Usted obtuvo : " + s;
aca mi problema es q cuando se ingresa una nota mayor a 100 sale un label con fuera de rango en este punto es donde quiero q deje de evaluar los siguientes if s ya q si la suma es menor a 100 sale la calificacion igual.
aver si me pueden ayudar aunque no se si se pueda hacer..... :)
Ese codigo va en el evento del boton no? pues yo juntaria esos ifs para ver si son mayores a 100 es decir en vez de :
if (n1 > 100 || n1 < 0)
label4.Text = "Ud ingreso un(os) valores mayor a 100";
if(n2>100 || n2<0)
label4.Text = "Ud ingreso un(os) valores mayor a 100";
if (n3>100 || n3<0)
label4.Text = "Ud ingreso un(os) valores mayor a 100";
Lo haria asi:
if (n1 > 100 || n1 < 0) || (n2>100 || n2<0) || (n3>100 || n3<0) {
label4.Text = "Ud ingreso un(os) valores mayor a 100";
return;}
Y ahi ya te solucione la salida de tu procedimiento en el caso de que la condicion se cumpla.
Graxias $Edu$ me sirvio lo q recomendaste :laugh:
Pero entendiste porque? lo de los ifs, si una de las condiciones de los parentesis da verdadero, ya nos sirve y muestra el mensaje, y como el mensaje es el mismo para cualquiera sea la condicion que se cumpla, lo hicimos asi.
Lo del return, eso lo usas siempre que quieras salir de un procedimiento void, ya que ves que no le indicamos que devolver, porque no tiene q devolver nada por eso ponemos "return;" pero si fuera una funcion que devuelva un valor en string ahi tendriamos que hacer "return "Error";" por ejemplo. Saludos
Lo de los ifs si esta facil de entender
lo del return aun no me lo explican pero creo q es para dar devolver el control al programa principal o algo asi y que en voids solo se pone return para acabar la ejecucion ...
Mmm, has creado alguna funcion booleana por ejemplo? que devuelve True o False, eso lo devolves poniendo return false; o return true;
y como void no retorna nada, ni string, ni true o false, ni un numero, nada, entonces se hace return; que es decir que devuelva nada, pero en este caso lo usas porque una vez q se usa return se termina el procedimiento void o si estas en una funcion tambien se termina devolviendo su valor.
una expresion booleana no es lo va luego de un if?
Bool, booleana, boolean es un tipo así como string ó int, no solo cuando haces un condicional (if) aplicas boolean sino tambien como dice $Edu$ si tienes una función de tipo boolean, retorna true o false así como una función int puede retornar 1 ó 0 por ejemplo.