Strings Methods

6 respostas Resolvido
javascript
T

Olá a todos,
Estou a preparar-me para iniciar um Bootcamp de JavaScript. Tenho algumas tarefas para fazer e, uma dela é esta que não estou a conseguir soluciona-la. Como tal, peso-vos ajuda!

Exercício:

Show me the code!

Remember the die roll simulator? Go ahead and transform the if - else if - else statements into a switch statement and check out how it gets easier to read.

var dieRoll = Math.ceil(Math.random() * 6);

if (dieRoll === 1) {

console.log(You roll a 1.);

} else if (dieRoll === 2) {

console.log(You roll a 2.);

} else if (dieRoll === 3) {

console.log(You roll a 3.);

} else if (dieRoll === 4) {

console.log(You roll a 4.);

} else if (dieRoll === 5) {

console.log(You roll a 5.);

} else if (dieRoll === 6) {

console.log(You roll a 6.);

} else {

console.log(This die only has 6 sides man…’);

}

A MINHA RESOLUÇÃO:

var dieRoll = Math.ceil(Math.random() * 6);

switch (dieRoll) {

case ‘You roll a 1.’:

console.log(‘You roll a 1.’);

break;

case ‘You roll a 2.’:

console.log(‘You roll a 2.’);

break;

case ‘You roll a 3.’:

console.log(‘You roll a 3.’);

break;

case ‘You roll a 4.’:

console.log(‘You roll a 4.’);

break;

case ‘You roll a 5.’:

console.log(‘You roll a 5.’);

break;

case ‘You roll a 6.’:

console.log(‘You roll a 6.’);

break;

default:

console.log(This die only has 6 sides man…’);

}

Output:

Code is incorrect

You should consider the 1 value in your switch

This die only has 6 sides man…

Agradeço a vossa ajuda!

6 Respostas

J

A estrutura de Switch:

var valor = 4

switch(valor){
     case 1:
       console.log("valor é 1");
       break;
     case 2: 
       console.log("valor é 2");
       break;
     ...
     default:
       console.log("não é nenhum dos valores acima!");
}

Para saber mais ver esse site:
https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Statements/switch

Resumindo, no lugar de:
case ‘You roll a 1.’:

Coloque:
case 1:
Assim por diante!

T

Boas @Jelson1,

Obrigado por te mostrares disponível em ajudar-me!

Segui a tua recomendação. No entanto, continua a dar erro.

var dieRoll = Math.ceil(Math.random() * 6);

switch (Math.ceil(Math.random() * 6)) {

case 1:

console.log(‘You roll a 1.’);

break;

case 2:

console.log(‘You roll a 2.’);

break;

case 3:

console.log(‘You roll a 3.’);

break;

case 4:

console.log(‘You roll a 4.’);

break;

case 5:

console.log(‘You roll a 5.’);

break;

case 6:

console.log(‘You roll a 6.’);

break;

default:

console.log(This die only has 6 sides man…’);

}

Output:

Code is incorrect

You should use the variable dieRoll in your switch statement

Quando altero e ponho a variável dieRoll, dá-me este erro: "Output

Code is incorrect
Each case should have a console.log() and a break statements, even the default"

Consegues decifrar o que estou a fazer de errado?

J
Solucao aceita

Traduzindo a frase acima:

Código incorreto
Cada caso deve ter um console.log () e uma instrução break, mesmo o padrão "

Eu acho que ele tá pedindo para colocar o break no último caso!

default:
   console.log("This die only has 6 sides man…");
   break;
}

Lembrado que no switch você deve colocar sua variável.

var dieRoll = Math.ceil(Math.random() * 6);

switch (dieRoll) {
 ...
T

Solucionado! Obrigado, @Jelson1.

De facto estava mesmo a pedir um break no último caso, que eu nunca coloquei por achar que não fazia sentido. Mas agora sei faz!

Obrigado uma vez mais.

Devo voltar a chatear-te porque ainda tenho alguns exercícios que na consigo soluciona-los. Se mantiveres o interesse em ajuda-me, fico extremamente grato.

Até breve!

J

Realmente o break no último caso não é obrigatório!
Mas colocá-lo acaba sendo uma boa prática. Traz mais consistência e menos surpresa no código, se um dia você querer mudar a ordem ou acrescentar mais casos, não corre o risco de você esquecer e gerar um bug. :slightly_smiling_face:

T

Exato!

Obrigado uma vez mais.

Criado 12 de abril de 2020
Ultima resposta 12 de abr. de 2020
Respostas 6
Participantes 2