A maior rede de estudos do Brasil

Switch só aceita números inteiros?

switch(numeroDigitado2){
case 0:
printf("\nIgual a zero.");
break;

case >0: // case label does not reduce to an integer constant. O valor é um float aqui.
printf("\nPositivo");
break;

case <0:
printf("\nNegativo.");
break;
}


4 resposta(s) - Contém resposta de Especialista

User badge image

RD Resoluções Verified user icon

Há mais de um mês

Sim, o comando switch...case somente trabalha com valores inteiros ou que possam ser interpretados como inteiros, como é o caso do char.

Sim, o comando switch...case somente trabalha com valores inteiros ou que possam ser interpretados como inteiros, como é o caso do char.

User badge image

Gabriel

Há mais de um mês

Então, o numeroDigitado pelo o que me lembro, só pode ser int ou char, dentro de case, não se deve colocar condições, como '<' ou '>', sempre deve ser uma constante, um valor conhecido, por isso tem esse erro, então um alternativa para esse programa é utilizar if e else mesmo, irá funcionar perfeitamente, 

if(numeroDigitado2==0) puts("zero");
else if(numeroDigitado2>0) puts("Positivo");
else puts("Negativo");

 

 
 
 
G
M
T
 
 
 
 
 
 
 
 
 
 
 
 
Text-to-speech function is limited to 200 characters
 
 
Options : History : Feedback : Donate Close
User badge image

Marco Aurélio

Há 3 horas

Tente usar a estrutura de repetição while:

while numero_a < 1 or numero_a > 10:
    numero_a = raw_input("Escolha o número A: ")


Essa pergunta já foi respondida por um dos nossos especialistas