Diferencia entre revisiones de «Usuario:ManuelRomero/php/sentencias»

De WikiEducator
Saltar a: navegación, buscar
Línea 42: Línea 42:
 
<hr>
 
<hr>
 
<source lang=php>
 
<source lang=php>
 +
</div>
 +
 +
<div class="slide">
 +
;Sentencias de control
 
if  (expresion)
 
if  (expresion)
 
     Sentencia_1;
 
     Sentencia_1;
Línea 47: Línea 51:
 
       Sentencia_2;
 
       Sentencia_2;
 
</source>
 
</source>
</div>
 
 
<div class="slide">
 
 
*También existe la opción elseif donde aportaremos una condición que se ha de cumplir para que se ejectuten las sentencias que a continuación acompañan.
 
*También existe la opción elseif donde aportaremos una condición que se ha de cumplir para que se ejectuten las sentencias que a continuación acompañan.
 
<source lang=php>
 
<source lang=php>
Línea 73: Línea 74:
 
   Sentencia 1;
 
   Sentencia 1;
 
  endif;
 
  endif;
 +
</source>
 
</div>
 
</div>
 
<div class="slide">
 
<div class="slide">
</source>
+
 
 
*Ahora lo vemos con código html
 
*Ahora lo vemos con código html
 
<source lang=php>
 
<source lang=php>
Línea 88: Línea 90:
 
</source>
 
</source>
 
</div>
 
</div>
 
<div class="slide">
 
  
 
<div class="slide">
 
<div class="slide">
Línea 95: Línea 95:
 
*Es una forma más compacta de un if else con una única instrucción.
 
*Es una forma más compacta de un if else con una única instrucción.
 
  Expresión? SentenciaOKExpresion : SentenciaNoOkExpresion
 
  Expresión? SentenciaOKExpresion : SentenciaNoOkExpresion
 +
{{Actividad|Programa que me de si un número aleatorio es par o impar}}
 
</div>
 
</div>
  
 
+
<div class="slide">
 
===Seleccion switch===
 
===Seleccion switch===
 
*Este es un selector múltiple
 
*Este es un selector múltiple
 
*La sentencia case puede albergar cualquier valor de un tipo simple, no está limitado a enteros como en otros lenguajes
 
*La sentencia case puede albergar cualquier valor de un tipo simple, no está limitado a enteros como en otros lenguajes
 +
*Estructura indicada cuanto tengamos más de dos casos ante una variable o sitiación que evaluemos excluyentes entre sí
 +
</div>
 +
 +
<div class="slide">
 +
;Switch
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
Línea 123: Línea 129:
 
#acutalizarla correctamente dentro del bucle
 
#acutalizarla correctamente dentro del bucle
 
#realizar de forma correcta la evaluación de condiciòn (< o <=), (> o >=), ...
 
#realizar de forma correcta la evaluación de condiciòn (< o <=), (> o >=), ...
 
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
Línea 132: Línea 137:
 
?>
 
?>
 
</source>
 
</source>
 +
</div>
 +
 +
<div class="slide">
 
*Alternativamente podemos usar la siguiente sintaxis
 
*Alternativamente podemos usar la siguiente sintaxis
 
<source lang=php>
 
<source lang=php>
Línea 169: Línea 177:
 
  }
 
  }
 
</source>
 
</source>
 +
</div>
 +
 +
<div class="slide">
 +
;Estructura for
 
*tiene tres partes
 
*tiene tres partes
 
;expresion_inicial:
 
;expresion_inicial:
Línea 177: Línea 189:
 
:Si no hay expresión se toma como true
 
:Si no hay expresión se toma como true
 
:En este caso para que el bucle no sea infinito deberá llevar algún break (instrucción de terminación de bloque) en algún momento
 
:En este caso para que el bucle no sea infinito deberá llevar algún break (instrucción de terminación de bloque) en algún momento
 +
</div>
 +
 +
<div class="slide">
 +
;Estrucutura for: condición
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
Línea 187: Línea 203:
 
</source>
 
</source>
 
</div>
 
</div>
 
 
<div class="slide">
 
<div class="slide">
;expresion_actualizar
+
;Estructura for: expresion_actualizar
 
:Esta expresión actualiza el valor de alguna/as variables
 
:Esta expresión actualiza el valor de alguna/as variables
 
:Se ejecuta en cada interacion
 
:Se ejecuta en cada interacion
Línea 209: Línea 224:
 
*Retorna un valor numérico  
 
*Retorna un valor numérico  
 
*el ++, -- son valores de autoincremeto y autodecremento, pueder ser pre o post
 
*el ++, -- son valores de autoincremeto y autodecremento, pueder ser pre o post
 +
</div>
 +
 +
<div class="slide">
 +
;Operadores
 
<source lang=php>
 
<source lang=php>
 
$a=5;
 
$a=5;
Línea 223: Línea 242:
 
?>
 
?>
 
</source>
 
</source>
*que genera la siguiente salida
+
</div>
 +
 
 +
<div class="slide">
 +
;Operadores
 +
*El código anterior genera la siguiente salida
 
<source lang=php>
 
<source lang=php>
 
  $a que vale 6 dice que vale 5 ????  
 
  $a que vale 6 dice que vale 5 ????  
Línea 230: Línea 253:
 
  efectivamente ahora $a ya no vale 6 sino 7
 
  efectivamente ahora $a ya no vale 6 sino 7
 
</source>
 
</source>
 +
</div>
 +
 +
<div class="slide">
 
;operadores comparación (==,<,>,>=,<=,<>,!=,===,!==)
 
;operadores comparación (==,<,>,>=,<=,<>,!=,===,!==)
 
:Este tipo de operadores genera un booleano como resultado de evaluar la expresión
 
:Este tipo de operadores genera un booleano como resultado de evaluar la expresión
Línea 247: Línea 273:
 
$num no es exactamente igual a true
 
$num no es exactamente igual a true
 
</source>
 
</source>
 +
</div>
  
;opreadores de concatenacón( .) concatena cadena de caracteres.
+
<div class="slide">
 +
;operadores de concatenacón( .) concatena cadena de caracteres.
 
:El operador + no está sobre cargado, observa el siguiente código
 
:El operador + no está sobre cargado, observa el siguiente código
 
<source lang=php>
 
<source lang=php>
Línea 260: Línea 288:
 
echo "el valor de nombre completo es $nombreCompleto --<br>";
 
echo "el valor de nombre completo es $nombreCompleto --<br>";
 
</source>
 
</source>
*La salida sería
+
</div>
 +
 
 +
<div class="slide">
 +
;La salida del código anterior sería
 
<source lang=php>
 
<source lang=php>
 
el valor de nombre completo es Maria de la Oh ---
 
el valor de nombre completo es Maria de la Oh ---
 
el valor de nombre completo es 0 --
 
el valor de nombre completo es 0 --
 
</source>
 
</source>
 +
</div>
  
 
+
<div class="slide">
;operadores de asignacion (= , =>)
+
;Operadores de asignacion (= , =>)
 
:Se pueden combinar con los aritméticos (+=, *=, ...)  y con los de concatenación (.=)
 
:Se pueden combinar con los aritméticos (+=, *=, ...)  y con los de concatenación (.=)
 
:En este caso el valor de la variable de la izquierda se toma como primero operando
 
:En este caso el valor de la variable de la izquierda se toma como primero operando
 +
;Operador de asiganción
 
<source lang=php>
 
<source lang=php>
 
<?php
 
<?php
Línea 279: Línea 312:
 
?>
 
?>
 
</source>
 
</source>
*Genera la siguiente salida
+
</div>
 +
 
 +
<div class="slide">
 +
*El código anterior genera la siguiente salida
 
<source lang=php>
 
<source lang=php>
 
valor de $b =10
 
valor de $b =10
Línea 292: Línea 328:
 
valor de $b =10000000000
 
valor de $b =10000000000
 
</source>
 
</source>
 +
</div>
 +
 +
<div class="slide">
 
;operadores de ejecución (``)
 
;operadores de ejecución (``)
 
:PHP proporciona un operador especial que permite ejecutar sentencias
 
:PHP proporciona un operador especial que permite ejecutar sentencias
Línea 301: Línea 340:
 
?>
 
?>
 
</source>
 
</source>
*Genera la siguiente salido
+
*Genera la siguiente salida
 
<source lang=php>
 
<source lang=php>
 
Filesystem    1K-blocks    Used Available Use% Mounted on
 
Filesystem    1K-blocks    Used Available Use% Mounted on
Línea 313: Línea 352:
 
/dev/sda7      101797224 40480360  56122728  42% /home
 
/dev/sda7      101797224 40480360  56122728  42% /home
 
</source>
 
</source>
 +
</div>
 +
 +
<div class="slide">
 
;operadores lógicos (and,&&, or, ||, xor !)
 
;operadores lógicos (and,&&, or, ||, xor !)
 
:Funcionan por cortocircuito
 
:Funcionan por cortocircuito

Revisión de 18:24 5 oct 2015



DWES TituloTema3.gif

Estructuras de control 1

A continuación veremos las estructuras de control Son de tres tipos

  1. Selección
  2. Iteración
  3. Secuenciales
  • Para construirlas necesitamos operadores

Selección if

  • Sentencia que evlúa una expresión booleana y ejectua o no en función de que dicha expresión sea true o false
 if (condicion)
     Sentencia 1;

 if  (condicion){
     Sentencia_1;
     Sentencia_2;
 }

</div>
 
<div class="slide">
;Sentencias de control
if  (expresion)
     Sentencia_1;
else
      Sentencia_2;
  • También existe la opción elseif donde aportaremos una condición que se ha de cumplir para que se ejectuten las sentencias que a continuación acompañan.
if (expresion){
   sentencias;
}
elseif (expresion){
   sentencias;
}
else{
   sentencias;
}
  • Alternativamente puede usarse esta sintaxis que es usada cuando se quiere intercalar condigo html fuera del php.
  • También se puede usar la sintaxis vista anteriormente, pero parece que esta quede más compacta.
if (condicion): 
   Sentencia 1;
 endif;
  • Ahora lo vemos con código html
<?php if (true): ?>
 
    <h1>Esta frase seguro que aparece ahor</h1>
    <!--escribirmos código html -->
<?php else: ?>
    <h1>Aquí escribiré poco ya que no va a aparecer nada</h1>
    <!--escribirmos código html -->
<?php endif ?>

Operadores ternario

  • Es una forma más compacta de un if else con una única instrucción.
Expresión? SentenciaOKExpresion : SentenciaNoOkExpresion


Icon activity.jpg

Actividad

Programa que me de si un número aleatorio es par o impar



Seleccion switch

  • Este es un selector múltiple
  • La sentencia case puede albergar cualquier valor de un tipo simple, no está limitado a enteros como en otros lenguajes
  • Estructura indicada cuanto tengamos más de dos casos ante una variable o sitiación que evaluemos excluyentes entre sí
Switch
<?php
switch ($nombre){
    case "Maria":
        echo "eres una chica";
        break;
    case "Pedro";
        echo "eres una chico";
        break;
    default:
        echo "no se qué nombre tienes";
}
?>

iteracion while

  • Como en todos los bucles debemos siempre tener encuenta
  1. inicializar la variable de control
  2. acutalizarla correctamente dentro del bucle
  3. realizar de forma correcta la evaluación de condiciòn (< o <=), (> o >=), ...
<?php
$i = 1;
while ($i <= 10) {
    echo "iteración número ."$i++;
}
?>
  • Alternativamente podemos usar la siguiente sintaxis
$i = 1;
while ($i <= 10):
    $i++;
    echo "iteración número ."$i;
endwhile;
?>

iteracion do-while

  • Este tipo de bucle donde seguro que al menos se ejectua un iteración
  • Respecto al anterior nos ahorra una comparación.
<?php
$num=10;
$resultado=1;
do {
   $resultado:=$resultado*$num;
   $num--;
} while ($num>0);
?>
  • Esta es la única sintaxis posible con este t tipo de sentencia iterativa-

iteracion for

  • Es un bucle de tipo contador
 for (expresion_inicial; condicion;expresion_actualizar){
       sentencias;
 }
Estructura for
  • tiene tres partes
expresion_inicial
Se ejecuta una sóla vez al comienzo del bucle. se usa para inicializar variables
condicion
Es una expresión booleana que se evalúa en cada interación
Si da un valor false, ya no se ejectua ninguna vez
Si no hay expresión se toma como true
En este caso para que el bucle no sea infinito deberá llevar algún break (instrucción de terminación de bloque) en algún momento
Estrucutura for
condición
<?php
for ($a=0; ;$a++){
    echo "$a*$a=".$a*$a."<br>";
    if ($a==10)
        break;
}
?>
Estructura for
expresion_actualizar
Esta expresión actualiza el valor de alguna/as variables
Se ejecuta en cada interacion
  • El ejemplo anterior
<?php
for ($a=0;$a<10 ;$a++){
    echo "$a*$a=".$a*$a."<br>";
}
?>

Operadores

  • Son símbolos que realizan acciones sobre operandos y dan como resultado un valor
  • Tenmos diferentes tipos de operadores en función del tipo de operandos y del resultado
operadores aritméticos (+,-,*,/,%,**, ++, --)
  • Retorna un valor numérico
  • el ++, -- son valores de autoincremeto y autodecremento, pueder ser pre o post
Operadores
$a=5;
if ($a++==5)
    echo '$a que vale '.$a.' dice que vale 5 ???? <br>'
        . 'Esto es por que primero compara y luego incrementa<br>';
 
echo 'ahora $a vale '.$a.'<br>';
 
if (++$a==6)
    echo 'esto nunca saldrá ya que $a se incrementa antes de comparar';
else
    echo 'efectivamente ahora $a ya no vale 6 sino '.$a.'<br>';
?>
Operadores
  • El código anterior genera la siguiente salida
 $a que vale 6 dice que vale 5 ???? 
 Esto es por que primero compara y luego incrementa
 ahora $a vale 6
 efectivamente ahora $a ya no vale 6 sino 7
operadores comparación (==,<,>,>=,<=,<>,!=,===,!==)
Este tipo de operadores genera un booleano como resultado de evaluar la expresión
Observar == que es igual, es decir el mismo valor respecto a === que es exactamente igual lo que quiere decir el mismo valor y tipo
$num=1;
if ($num==true)
    echo '$num es igual a true<br>';
if ($num===true){
    echo "esto nunca se ejecutará";
}else
    echo '$num no es exactamente igual a true';
  • Genera la siguiente salida
$num es igual a true
$num no es exactamente igual a true
operadores de concatenacón( .) concatena cadena de caracteres.
El operador + no está sobre cargado, observa el siguiente código
$nombre="Maria";
$apellido = " de la Oh";
 
$nombreCompleto = $nombre.$apellido;
echo "el valor de nombre completo es $nombreCompleto ---<br>";
 
$nombreCompleto = $nombre+$apellido;
echo "el valor de nombre completo es $nombreCompleto --<br>";
La salida del código anterior sería
el valor de nombre completo es Maria de la Oh ---
el valor de nombre completo es 0 --
Operadores de asignacion (= , =>)
Se pueden combinar con los aritméticos (+=, *=, ...) y con los de concatenación (.=)
En este caso el valor de la variable de la izquierda se toma como primero operando
Operador de asiganción
<?php
$b=1;
for ($a=0;$a<10;$a++){
    $b*=10;
    echo 'valor de $b ='.$b.'<br>';
}
?>
  • El código anterior genera la siguiente salida
valor de $b =10
valor de $b =100
valor de $b =1000
valor de $b =10000
valor de $b =100000
valor de $b =1000000
valor de $b =10000000
valor de $b =100000000
valor de $b =1000000000
valor de $b =10000000000
operadores de ejecución (``)
PHP proporciona un operador especial que permite ejecutar sentencias
  • Observa el siguiente código
<?php
$Discos = `df`;
echo "<pre>$Discos</pre>";
?>
  • Genera la siguiente salida
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda5       86378608  6072360  75895384   8% /
none                   4        0         4   0% /sys/fs/cgroup
udev             4023720        4   4023716   1% /dev
tmpfs             806904     1384    805520   1% /run
none                5120        0      5120   0% /run/lock
none             4034504     6588   4027916   1% /run/shm
none              102400       28    102372   1% /run/user
/dev/sda7      101797224 40480360  56122728  42% /home
operadores lógicos (and,&&, or, ||, xor !)
Funcionan por cortocircuito
El operador xor da verdad si los operando son de diferente valor uno true y el otro false
La notación and y && representan el mismo operador, igual ocurre con or y ||