-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path09_switch.js
149 lines (116 loc) · 5.43 KB
/
09_switch.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
// La estructura switch es otra manera de evaluar condiciones, la diferencia con if es que las condiciones deben ser iguales a un caso o algo específico.
// Cómo utilizar el condicional switch: Colocamos la palabra reservada switch y seguido de la variable o expresión a evaluar, pero sin ningún operador de comparación.
// Después colocamos cada caso con la palabra reservada case y el valor que deberá ser igual a la expresión. Seguido colocamos el bloque de código a ejecutar y al final la palabra reservada break para que no vuelva a evaluar otra condición si ya se cumplió.
// Finalmente, colocamos la condición por defecto con la palabra reservada default que se ejecutará si ninguno de los casos fue el correcto. Esto es semejante al bloque else.
let expresion = 1;
switch (expresion) {
case 1: {
console.log('case: 1'); // Bloque 1
break;
}
case 2: {
console.log('case: 2'); // Bloque 2
break;
}
default: {
console.log('default: cualquier valor que no sea 1 o 2');// Bloque por defecto
}
}
// Esto se leería de la siguiente manera: evalúa (switch) la variable expresion, en el caso de que sea igual a uno (case 1), entonces ejecuta el bloque 1 y termina (break), en el caso de que sea igual a dos (case 2), entonces ejecuta el bloque 2 y termina (break), si no se cumple ninguna, ejecuta un bloque por defecto (default).
// Ejemplo utilizando switch: Por ejemplo, creemos un semáforo.
let verde = "verde";
let amarillo = "amarillo";
let rojo = "rojo";
function semaforo(color) {
switch (color) {
case "verde": {
return "🟢 ¡Sigue!";
break
}
case "amarillo": {
return "🟡 ¡Detente!";
break
}
case "rojo": {
return "🔴 ¡No puedes avanzar!";
break
}
default: {
console.log("🤔 ¡No reconozco ese color!");
return "🤔 ¡No reconozco ese color!";
}
}
}
console.log( semaforo(verde) );
console.log( semaforo(amarillo) );
console.log( semaforo(rojo) );
console.log( semaforo() );
// Cuándo utilizar switch: Deberías utilizar switch cuando tengas una gran cantidad de casos, que con el condicional if produciría más cantidad de código. El problema con switch es que no es muy utilizado y todo se resuelve con if. Sin embargo, conocer esta estructura te puede permitir escribir código más legible en ciertos casos.
// Ejercicio de condicionales: Cambia tu juego de piedra, papel o tijera realizado con condicionales if a la estructura switch. ¿Qué diferencias observaste? ¡Comparte tu trabajo en la sección de aportes!
// Resolución: Divido el programa en tres funciones. El juego() donde se ingresa la opción del jugador (papel, tijera o piedra). Otra función para el proceso del resultado y una ultima función para seleccionar el icono corespondiente.
// El proceso se gestiona de la siguiente manera: En la entrada del switch tiene que ingresar un true.
// Por eso si se cumple uno de los tres casos sera true.
// Si user y la IA son iguales es un empate.
// Si el usuario selecciona:
// user | IA | Gana el User. caso contrario gana la IA
// -----------------|
// papel | piedra |
// tijera | papel |
// piedra | tijera |
let papel = 1;
let tijera = 2;
let piedra = 3;
let IA = Math.floor(Math.random() * 3);
function juego(user){
let resultado;
Number(IA);
Number(user);
resultado = proceso(user);
user = icon(user);
IA = icon(IA);
return `Tú:${user} la IA:${IA} = ${resultado}`;
}
function proceso(user){
switch (user===1 || user===2 || user===3) {
case (user===1 && IA===3) || (user===2 && IA===1) || (user===3 && IA===2):
return "🥳 Ganaste!";
break;
case (user === IA || IA === user):
return '🤝🏼 Empate';
break;
default:
return '😵 Perdiste!';
break;
}
}
function icon(cambio){
switch (cambio) {
case 1: return "📋";
break;
case 2: return "✂";
break;
case 3: return "🥌";
break;
default: return "❌";
break;
}
}
console.log(juego(papel));
// En este desafío debes retornar un mensaje distinto dependiendo del artículo de tecnología que recibas:
// Si recibes una "computadora", debes retornar el mensaje "Con mi computadora puedo programar usando JavaScript".
// Si recibes un "celular", debes retornar el mensaje "En mi celular puedo aprender usando la app de Platzi".
// Si recibes un "cable", debes retornar el mensaje "¡Hay un cable en mi bota!".
// Y si no recibes ninguno de estos valores, debes retornar el mensaje "Artículo no encontrado".
// Hola, en este caso no es necesario usar el break después del return, ya que es código inaccesible, ya que la ejecución de la función finaliza cuando retornas el valor deseado.
function solution(article) {
switch (article) {
case 'computadora': return 'Con mi computadora puedo programar usando JavaScript';
case 'celular' : return 'En mi celular puedo aprender usando la app de Platzi';
case 'cable' : return '¡Hay un cable en mi bota!';
default : return "Artículo no encontrado";
}
}
console.log( solution('computadora') );
console.log( solution('celular') );
console.log( solution('cable') );
console.log( solution('ornitorrinco') );