Hola gente!
estoy haciendo un programa con una sentencia switch muy extensa, y me encontre con un error bastante simple que no eh podido eliminar.
el codigo reducido al problema es este (esta hecho para wingdows):
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main(void){
char caracter;
printf("%dn",VK_NUMPAD0);
printf("%dnn",VK_NUMPAD9);
printf("%dn",'1');
printf("%dnn",'9');
printf("%dn",'A');
printf("%dnn",'Z');
for(caracter = 0; caracter < 256; caracter++){
switch(caracter){
case 'A'||'B'||'C'||'D'||'E'||'F'||
'G'||'H'||'I'||'J'||'K'||'L'||
'M'||'N'||'O'||'P'||'Q'||'R'||
'S'||'T'||'U'||'V'||'W'||'X'||
'Y'||'Z'||
'1'||'2'||'3'||'4'||'5'||
'6'||'7'||'8'||'9'||'0':
printf("aguante...n");
break;
case VK_NUMPAD0||VK_NUMPAD1||VK_NUMPAD2||VK_NUMPAD3||VK_NUMPAD4||
VK_NUMPAD5||VK_NUMPAD6||VK_NUMPAD7||VK_NUMPAD8||VK_NUMPAD9:
printf("..el metal!!n");
break;
}
}
return 0;
}
el error q obtengo es el de que el valor case '1' ya ha sido utilizado.
Lo extraño , o capaz mi mal interpretacion del error, es que ninguna constante usada en los cases es 1, imprimi sus valores al comienzo del programa y demuestra que no hay valores repetidos.
sera que estoy utilizando mal la sentencia switch case?
saludos!