2011-07-15 11 views
7

Estoy usando XCode 4.0.2 para un proyecto iOS4.¿Se puede hacer una declaración de tipo en una declaración Switch?

que tienen un estándar de "Switch" declaración

switch (i) { 
    case 0: 
     int a = 0; 
    break 
    ... 
} 

Esto me dará un error "esperar que la expresión" en la int a = 0 ;.

Es muy extraño que "Switch" está trabajando muy bien si preceder declaración de tipo con una declaración simple como esto

switch (i) { 
    case 0: 
     b = 0; 
     int a = 0; 
    break 
    ... 
} 

en este caso, el compilador da ningún error (sólo una "variable sin usar una" advertencia)

¿Cómo puede ser eso?

Gracias.

Respuesta

6

intentar algo así como

switch (i) { 
    case 0: 
    { 
     int a = 0; 
    } 
    break 
    ... 
} 
1

Sólo encerrar la declaración de caso entre llaves:

switch (i) { 
    case 0: { 
     int a = 0; 
     break; 
    } 

    ... 
} 
0

puede declarar variables como

switch (i) { 
    case 0: 
     { //User brackets 
      int a = 0; 
     } 
    break 
    ... 
} 
1

Es necesario abrir un nuevo ámbito de { } para declarar nuevas variables:

switch (i) { 
    case 0: { 
     int a = 0; 
     break; 
    } 
} 
Cuestiones relacionadas