[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