[C con Clase] Duda de Sentencia Switch
Steven Davidson
steven en conclase.net
Lun Ene 15 03:24:46 CET 2007
Hola David,
El pasado 2007-01-15 01:26:53, David Reza escribió:
DR> La sentencia Switch puede trabajar con Cadenas de caracteres (Arrays) o con punteros? Pregunto porque ya lo intenté y me manda error de:
DR> [quote] switch quantity not an integer [/quote]
DR> Y a como entendí en el curso, el Switch compara una variable. Los arrays y punteros son variables pero se podría decir que son otro tipo de variables "no puras" ??
Cierto, pero la comparación no es entre variables, sino entre un valor y una constante. Típicamente, comparamos el valor de una variable con la posibilidad de varias constantes según los casos (case). La sintaxis viene a ser:
switch ( <expresión> )
{
case <expresión_constante> : <sentencias>
case <expresión_constante> : <sentencias>
...
[default : <sentencias>]
}
Por ejemplo,
int var;
int num;
const int N = 10;
...
switch( num )
{
case 1: ...
case 2: case 3: ...
case N: ...
case N+1: ...
case N+2: ...
case 'q': ...
case var: ... // ERROR
}
No tenemos errores en los casos que indican valores literales, constantes, o expresiones constantes, pero sí cuando usamos una variable. Esto lo puedes ver en el cap. 5: http://c.conclase.net/curso/index.php?cap=005c#Se_seleccion
Espero haber aclarado el tema.
Steven
Más información sobre la lista de distribución Cconclase