| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | --- | 
					
						
							|  |  |  | id: 5690307fddb111c6084545d7 | 
					
						
							| 
									
										
										
										
											2021-03-07 09:15:14 -07:00
										 |  |  | title: Orden lógico de las sentencias "if else" | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | challengeType: 1 | 
					
						
							|  |  |  | videoUrl: 'https://scrimba.com/c/cwNvMUV' | 
					
						
							|  |  |  | forumTopicId: 18228 | 
					
						
							|  |  |  | dashedName: logical-order-in-if-else-statements | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --description--
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-07 09:15:14 -07:00
										 |  |  | El orden es importante en las sentencias `if`, `else if`. | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-07 09:15:14 -07:00
										 |  |  | La función se ejecuta de arriba a abajo, por lo que habrá que tener cuidado con qué sentencia va primero. | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-07 09:15:14 -07:00
										 |  |  | Tomemos como ejemplo estas dos funciones. | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-07 09:15:14 -07:00
										 |  |  | Aquí está la primera: | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | function foo(x) { | 
					
						
							|  |  |  |   if (x < 1) { | 
					
						
							|  |  |  |     return "Less than one"; | 
					
						
							|  |  |  |   } else if (x < 2) { | 
					
						
							|  |  |  |     return "Less than two"; | 
					
						
							|  |  |  |   } else { | 
					
						
							|  |  |  |     return "Greater than or equal to two"; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-07 09:15:14 -07:00
										 |  |  | Y la segunda, simplemente cambia el orden de las sentencias: | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | function bar(x) { | 
					
						
							|  |  |  |   if (x < 2) { | 
					
						
							|  |  |  |     return "Less than two"; | 
					
						
							|  |  |  |   } else if (x < 1) { | 
					
						
							|  |  |  |     return "Less than one"; | 
					
						
							|  |  |  |   } else { | 
					
						
							|  |  |  |     return "Greater than or equal to two"; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-07 09:15:14 -07:00
										 |  |  | Mientras que estas dos funciones parecen casi idénticas, si pasamos un número a ambas, obtenemos diferentes salidas. | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							| 
									
										
										
										
											2021-03-07 09:15:14 -07:00
										 |  |  | foo(0) | 
					
						
							|  |  |  | bar(0) | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-07 09:15:14 -07:00
										 |  |  | `foo(0)` devolverá la cadena `Less than one`, y `bar(0)` devolverá la cadena `Less than two`. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | # --instructions--
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-07 09:15:14 -07:00
										 |  |  | Cambia el orden lógico en la función para que devuelva el resultado correcto en todos los casos. | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # --hints--
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-07 09:15:14 -07:00
										 |  |  | `orderMyLogic(4)` debe devolver la cadena `Less than 5` | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | assert(orderMyLogic(4) === 'Less than 5'); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-07 09:15:14 -07:00
										 |  |  | `orderMyLogic(6)` debe devolver la cadena `Less than 10` | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | assert(orderMyLogic(6) === 'Less than 10'); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-07 09:15:14 -07:00
										 |  |  | `orderMyLogic(11)` debe devolver la cadena `Greater than or equal to 10` | 
					
						
							| 
									
										
										
										
											2021-02-06 04:42:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | assert(orderMyLogic(11) === 'Greater than or equal to 10'); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --seed--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## --seed-contents--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | function orderMyLogic(val) { | 
					
						
							|  |  |  |   if (val < 10) { | 
					
						
							|  |  |  |     return "Less than 10"; | 
					
						
							|  |  |  |   } else if (val < 5) { | 
					
						
							|  |  |  |     return "Less than 5"; | 
					
						
							|  |  |  |   } else { | 
					
						
							|  |  |  |     return "Greater than or equal to 10"; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | orderMyLogic(7); | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --solutions--
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```js | 
					
						
							|  |  |  | function orderMyLogic(val) { | 
					
						
							|  |  |  |   if(val < 5) { | 
					
						
							|  |  |  |     return "Less than 5"; | 
					
						
							|  |  |  |   } else if (val < 10) { | 
					
						
							|  |  |  |     return "Less than 10"; | 
					
						
							|  |  |  |   } else { | 
					
						
							|  |  |  |     return "Greater than or equal to 10"; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ``` |