Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Dimitar Stefanov en 04 de Mayo 2016, 18:59

Título: PHP condicionales if else if, Condicional ternario con interrogante CU00817B
Publicado por: Dimitar Stefanov en 04 de Mayo 2016, 18:59
Hola a todos los usuarios de aprenderaprogramar.com. Aquí expongo una posible solución del ejercicio CU00817B del curso PHP desde cero.

Citar
EJERCICIO 1

Ejecuta este código y responde:

Código: [Seleccionar]
<?php

$haceFrio 
15;

$respuesta ="";

$temperatura = ($haceFrio<20) ? $respuesta "Hace frio" $respuesta "No hace frio";

echo 
$respuesta;
?>

Citar
a) ¿Qué resultado se obtiene por pantalla?

Por pantalla se obtiene: "Hace frío" debido a que el valor de la variable "Hace frío" es menor que 20.

Citar
b) Modifica el código sustituyendo el operador ternario por if else para que el resultado obtenido sea el mismo.

Código: [Seleccionar]
<?php 
$haceFrio 15;
$respuesta '';
$temperatura $respuesta;

if($haceFrio 20){
$respuesta 'Hace frío';
}else{
$respuesta 'No hace frío';
}

echo $temperatura;
?>

Aquí me surge una duda. En el código original se "imprime" por pantalla la variable "respuesta" pero si tenemos una asignación del tipo: "$temperatura = ($haceFrio < 20)? $respuesta = 'Hace frío' : $respuesta = 'No hace frío';" no es más lógico imprimir la variable "temperatura"? Por eso, en el código modificado he impreso la variable "temperatura".

Y otra cuestión: he hecho bien la asignación antes de la condición? O mejor lo tenía que haber hecho después? Es decir, que el código se quede así:

Código: [Seleccionar]
<?php 
$haceFrio 15;
$respuesta '';


if($haceFrio 20){
$respuesta 'Hace frío';
}else{
$respuesta 'No hace frío';
}

$temperatura $respuesta;
echo $temperatura;
?>

O eso es sin relevancia?

Gracias.
Título: Re:CU00817B if else if en PHP
Publicado por: Dimitar Stefanov en 04 de Mayo 2016, 19:06
Perdón, se me olvidó el segundo ejercicio. Aquí os lo dejo:

Citar
EJERCICIO 2

Define las variables $tipo, $grosor, $diametro y $marca. Establece que el tipo sea “Rueda de camión”, el grosor 0.33, el diámetro 1.25 y la marca “Kimashuki”. Crea el código PHP donde a través de condicionales if realices la siguiente comprobación: si el diámetro es superior a 1.4 debe mostrarse por pantalla el mensaje “La rueda es para un vehículo grande”. Si es menor o igual a 1.4 debe mostrarse por pantalla el mensaje “La rueda es para un vehículo pequeño”. En otro caso, debe mostrarse “No existe un tamaño de rueda válido”.

Código: [Seleccionar]
<?php 
$tipo 'Rueda de camión';
$grosor 0.33;
$diametro 1.25;
$marca 'Kimashuki';

if($diametro 1.4){
echo "La rueda es para un vehículo grande.";
}else if($diametro <= 1.4){
echo "La rueda es para un vehículo pequeño.";
}else{
echo "No existe un tamaño de rueda válido.";
}
?>

Gracias
Título: Re:CU00817B if else if en PHP
Publicado por: pedro,, en 05 de Mayo 2016, 15:47
Buenas dimiste.

En cuanto a tu primer comentario sobre el código expuesto en el ejercicio 1, en realidad daría igual mostrar el contenido de $temperatura o $respuesta, puesto que las dos valdrían lo mismo.
En la solución que propones sobre el primer ejercicio, de la manera que lo solucionaste, $temperatura siempre valdrá "", puesto que cuando haces '$temperatura = $respuesta;', $respuesta tiene valor "". El segundo código si mostraría como valor de $temperatura, 'Hace Frío'.

El segundo ejercicio todo OK.

Saludos. ;D
Título: Re:CU00817B. if else if, Condicional ternario en PHP
Publicado por: Dimitar Stefanov en 05 de Mayo 2016, 16:38
Totalmente de acuerdo, Pedro.

Modificado el código quedará así:

Código: [Seleccionar]
<?php 
$haceFrio 15;
$respuesta '';


if($haceFrio 20){
$respuesta 'Hace frío';
}else{
$respuesta 'No hace frío';
}
$temperatura $respuesta;
echo $temperatura;
?>

A la variable "$temperatura" se le tiene que asignar el valor de la variable "$respuesta" después de haber toma la misma un valor diferente a "".

Gracias, Pedro, por la corrección y el tiempo dedicado.

Saludos :)