Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Juste

[Resolvido] Problemas com a estrutura switch case

Recommended Posts

Boa tarde pessoal,

 

Estou aprendendo JS e estou tendo dificuldades para testar a estrutura Switch. No script abaixo, deve ser inserido um número de 1 á 7 e depois deve ser exibido um "alert" com os dizeres: "Você escolheu o número 'x' " , no entanto não estou conseguindo exibir esta última etapa. Alguma sugestão?

 


<script type="text/javascript">

function showNum() 
       {	

var num = prompt("Escolha um número de "  +1+ " a " +7);

switch (num)
{
	case 1:
		 x = "Você escolheu o número : 1 " ;
		break;
	case 2:
		x = "Você escolheu o número : 2 ";
		break;
	case 3:
		x = "Você escolheu o número : 3 ";
		break;
	case 4:
		x = "Você escolheu o número : 4 ";
		break;
	case 5:
		x = "Você escolheu o número : 5 ";
		break;
	case 6:
		x ="Você escolheu o número : 6 ";
		break;
	case 7:
		x = "Você escolheu o número : 7 ";
		break;
}		

alert(x);


}
showNum();	

</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sugestão:

 

function showNum() {
   var num = prompt("Escolha um número de " + 1 + " a " + 7);
   if (num == 1) {
       x = "Você escolheu o número : 1"
   } else if (num == 2) {
       x = "Você escolheu o número : 2"
   } else if (num == 3) {
       x = "Você escolheu o número : 3"
   } else if (num == 4) {
       x = "Você escolheu o número : 4"
   } else if (num == 5) {
       x = "Você escolheu o número : 5"
   } else if (num == 6) {
       x = "Você escolheu o número : 6"
   } else if (num == 7) {
       x = "Você escolheu o número : 7"
   } else {
       x = "Você não escolheu um número de 1 a 7"
   }
   alert(x);
}
showNum();

 

ou assim o mais correto ao meu ver...

 

function showNum() {
   var num = prompt("Escolha um número de " + 1 + " a " + 7);
   if (num <= 7) {
       x = "Você escolheu o número : " + num
   } else {
       x = "Você não escolheu um número de 1 a 7"
   }
   alert(x);
}
showNum();

Compartilhar este post


Link para o post
Compartilhar em outros sites

nunca usei o prompt, mas acho que a resposta vem do modo string e não number..

 

já tentou colocar colocar entre aspas?

case '1':

case '2':

 

etc..

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim vai Jhon Paulo, mais um if eu considero melhor nesse caso, se bem que cada caso é um caso.

 

Da pra fazer a mesma coisa com if e utilizar menos linhas o que acelera o processamento, por isso minha sugestão por if no lugar do switch em conjunto do case "neste caso".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sugestão:

 

function showNum() {
   var num = prompt("Escolha um número de " + 1 + " a " + 7);
   if (num == 1) {
       x = "Você escolheu o número : 1"
   } else if (num == 2) {
       x = "Você escolheu o número : 2"
   } else if (num == 3) {
       x = "Você escolheu o número : 3"
   } else if (num == 4) {
       x = "Você escolheu o número : 4"
   } else if (num == 5) {
       x = "Você escolheu o número : 5"
   } else if (num == 6) {
       x = "Você escolheu o número : 6"
   } else if (num == 7) {
       x = "Você escolheu o número : 7"
   } else {
       x = "Você não escolheu um número de 1 a 7"
   }
   alert(x);
}
showNum();

 

ou assim o mais correto ao meu ver...

 

function showNum() {
   var num = prompt("Escolha um número de " + 1 + " a " + 7);
   if (num <= 7) {
       x = "Você escolheu o número : " + num
   } else {
       x = "Você não escolheu um número de 1 a 7"
   }
   alert(x);
}
showNum();

 

LGBT,

 

Obrigado por se dispor, mas entenda que eu estou estudando a estrutura switch case. Estou pedindo uma sugestão para que o problema proposto seja resolvido através desta estrutura, pois a "If-Else" eu já não tenho mais dúvidas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

LGBT, na verdade isso não teria serventia pra nada..

como podemos ler lá no primeiro post dele, ele está testando a estrutura switch.. apenas testes...

 

opa postamos junto Juste :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

LGBT, na verdade isso não teria serventia pra nada..

como podemos ler lá no primeiro post dele, ele está testando a estrutura switch.. apenas testes...

 

Jhon Paulo,

 

A sugestão de utilizar aspas no número do case funcionou !

Acredito que a variável "txt" estava tratando os números como string, então tive uma outra idéia, declarei a variável utilizando o método "parseInt()", desta forma "var num = parseInt(prompt("Escolha um número de " +1+ "a" +7));", daí não precisei colocar as aspas.

A sua observação já teria resolvido o problema, mas achei interessante testar desta outra maneira.

Valeu mesmo !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Saquei, mais tenho que sugerir a simplicidade nesse caso, vai da escolha de cada um, apenas opnei ^_^

 

Mas cada um programa da maneira que convém, eu por exemplo nos tempos atuais nunca que usaria prompt, já que esta obsoleto e existem outras formas mais eficaz, com melhor resultado, maior dinamismo e podendo ser compatível com vários sistemas.

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

LGBT, você não entendeu o ponto.

Não estamos questionando qual é a maneira correta ou mais lógica. Eu criei este problema para testar a estrutura switch pq eu não a conhecia, ou seja, minha dúvida estava relacionada a sintax e não a lógica para resolver o problema. Se fosse isso sua resposta seria adequada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Saquei, mais tenho que sugerir a simplicidade nesse caso, vai da escolha de cada um, apenas opnei ^_^

 

Mas cada um programa da maneira que convém, eu por exemplo nos tempos atuais nunca que usaria prompt, já que esta obsoleto e existem outras formas mais eficaz, com melhor resultado, maior dinamismo e podendo ser compatível com vários sistemas.

 

:thumbsup:

Qual seria a opção atual para substituir o uso do prompt?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.