Error con la Estructura de control SWITCH

hola, recientemente compre mi arduino diecimila y comenze mis experimentos, en este primer ejemplo donde coloque un display numerico DC05 me sale el siguiente error:

error: jump to case label at global scope:

int LedPin = {1,2,3,4,5,6,7,8};

void setup()
{
for(int i=0;i<=7;i++)
{
pinMode(LedPin*, OUTPUT);*

  • }*
    }
    void Numeros(int ElNumero)
    {
  • switch(ElNumero)*
  • {*
  • case 1:*
  • int LosNumeros = {1,1,1,0,1,0,1,0,0};*
  • break;*
    case 2:
  • int LosNumeros = {1,0,1,1,1,0,1,0,0};*
  • break;*
  • case 3:*
  • int LosNumeros = {1,0,1,1,0,1,1,0,0};*
  • break;*
  • case 4:*
  • int LosNumeros = {0,1,1,1,0,1,0,0,0};*
  • break;*
  • case 5:*
  • int LosNumeros = {1,1,0,1,0,1,1,0,0};*
  • break;*
  • case 6:*
  • int LosNumeros = {1,1,0,1,1,1,1,0,0};*
  • break;*
  • case 7:*
  • int LosNumeros = {1,0,1,0,0,1,0,0,0};*
  • break;*
  • case 8:*
  • int LosNumeros = {1,1,1,1,1,1,1,1,0};*
  • break;*
  • case 9:*
  • int LosNumeros = {1,1,1,1,0,1,0,0,0};*
  • break;*
  • case 0:*
  • int LosNumeros = {1,1,1,0,1,1,1,0,0};*
  • break;*
  • default:*
  • int LosNumeros = {0,0,0,0,0,0,0,0,1};*
  • break;*
  • }*
  • for(int i=0;i<=7;i++)*
  • {*
    _ if(LosNumeros == 1)_
    * {*
    _ digitalWrite(LedPin*, HIGH);
    }else{
    digitalWrite(LedPin, LOW);
    }
    }
    }
    void loop()
    {
    for(int val=9;val>=0;val–)
    {
    Numeros(val);
    delay(1000);
    }
    }
    Aparentemente asignar un ARRAY dentro de un case, es causa de error, por que si borro los ARRAY si funciona.
    alguien ha tenido este tipo de error? o alguien que me diga que estoy haciendo mal…
    …saludos a todos*_

Hola,

Creo que hay varios problemas en tu código:

  • Defines el array “LosNumeros” varias veces (int LosNumeros = {1,1,1,0,1,0,1,0,0};). Defínelo como variable global y después invócalo desde el switch. No puedes definirlos en casa “CASE”
  • No se pueden asignar directamente arrays en C … sólo inicializarlos. Tienes que asignar los valores a las posiciones.

LosNumeros = {1,0,1,1,1,0,1,0,0}; → ERROR

CORRECTO:

LosNumeros[0]=1;
LosNumeros[1]=0;
LosNumeros[2]=1;
LosNumeros[3]=1;

LosNumeros[7]=0;
LosNumeros[8]=0;

Salu2,

Igor

Muchas gracias Igor.... :)