SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: SysEdw en Martes 11 de Noviembre de 2008, 23:26

Título: condiciones multiples
Publicado por: SysEdw en Martes 11 de Noviembre de 2008, 23:26
hola comunidad por favor quisiera que me den una idea de como realizar esta instrccuion de
00 a 10 malo
11 a 15 regular y de
16 a 20 bueno,
yo ya lo he realizado con la condicion if y ahora deseo realizarlo con los condiciones multiples switch
gracias por su aportcion
Título: Re: condiciones multiples
Publicado por: AaronBC en Domingo 16 de Noviembre de 2008, 00:19
Bueno eso depende, el "número o calificación" que evaluarás ¿lo ingresará el usuario o el mismo programa?

Por ejemplo. este funciona cuando tu programa da el número.

Código: Text
  1.         Random Rnd = new Random();
  2.         int X=Rnd.Next(20);
  3.         Prueba:
  4.         switch(X)
  5.         {
  6.             case 10:
  7.                 Console.WriteLine("Malo");
  8.                 break;
  9.             case 15:
  10.                 Console.WriteLine("Regular");
  11.                 break;
  12.             case 20:
  13.                 Console.WriteLine("Bueno");
  14.                 break;
  15.             default:
  16.                 X++;
  17.                 goto Prueba;
  18.         }
  19.         Console.ReadLine();
  20.  

En caso de que el usuario ingrese el valor, tendrías que validar que no ingrese números que sean negativos ni mayores a 20;

Saludos desde México  :P
Título: Re: condiciones multiples
Publicado por: SysEdw en Domingo 16 de Noviembre de 2008, 23:28
hola gracias por tu respuesta, pero es una calificacion que son tres notas que se va ha ingresar y la sunma de los tresdividio entre tres es el promedio
p=(n1+n2+n3)/3
y de ahi las condiciones
Título: Re: condiciones multiples
Publicado por: ProfesorX en Lunes 17 de Noviembre de 2008, 03:39
El switch/case no permite rangos numericos, debes definir uno por uno, de la siguiente manera:

Código: C#
  1.  
  2.             switch (X)
  3.             {
  4.                 case 0:
  5.                 case 1:
  6.                 case 2:
  7.                 case 3:
  8.                 case 4:
  9.                 case 5:
  10.                 case 6:
  11.                 case 7:
  12.                 case 8:
  13.                 case 9:
  14.                 case 10:
  15.                     Console.WriteLine("Malo");
  16.                     break;
  17.  
  18.  

Pero a mi parecer, no es eficiente hacerlo, imaginate si el rango fuera de 0 a 100 en lugar de 0 a 10, en esos casos se debe usar el if 100%

Saludos :hola: