Está en la página 1de 10

TEMA 4 Programación avanzada: Estructuras de

control

ESTRUCTURA
CONDICIONALES
Las estructuras condicionales son aquellas que permiten tener dos o más
alternativas en el flujo de ejecución de los programas, proporcionando al
programador la herramienta adecuada para conseguir que los algoritmos puedan
ejecutar ciertos pasos en lugar de otros. Esto se consigue al establecer una
condición (o varias) como base para seguir un camino de ejecución u otro dentro de
los programas. Así, dependiendo de si la condición (o condiciones) se cumple o no,
el programa seguirá su ejecución por un camino u otro. Por ello también reciben el
nombre de estructuras alternativas o instrucciones de bifurcación.

Ahora puede que estés pensando que esas bifurcaciones solo serán de dos caminos
posibles, pero verás que en realidad, estas estructuras posibilitan abrir gran
cantidad de caminos distintos de ejecución. Todo dependerá de la necesidad del
programador en cada momento, y del uso adecuado que se le de a las estructuras
condicionales.

En los siguientes apartados podrás conocer en mayor profundidad cada uno de los
tipos de instrucciones de bifurcación existentes, pero ante todo, recuerda, este
tipo de instrucciones no hacen que otras repitan su ejecución, su propósito
es hacer que se ejecuten unas órdenes u otras pero una única vez. Si
necesitas hacer una ejecución cíclica o repetitiva de un grupo de instrucciones, las
estructuras adecuadas son las repetitivas o bucles, que verás en este mismo tema.
ESTRUCTURA CONDICIONAL SI
Esta estructura permite ejecutar un bloque de instrucciones (una instrucción o más)
siempre y cuando se cumpla una condición. La condición será una expresión
compuesta por una o más comparaciones, incluyendo en ellas una o varias de las
variables que se utilizan en el programa.

Sintaxis:

SI condición
ENTONCES

      Bloque de
instrucciones

FINSI

Fuente propia

Si la condición se cumple, se ejecutarán las instrucciones del "Bloque de


instrucciones", en caso contrario el programa salta hasta la sentencia que haya
justo debajo del "FINSI" y continua la ejecución en ese punto.

ESTRUCTURA SINO
Esta estructura es una variante de la anterior, a la que se le ha añadido un bloque
alternativo de instrucciones a ejecutar en caso de que la condición no se cumpla.
Por tanto, la estructura permite ejecutar un bloque de instrucciones (una
instrucción o más) siempre y cuando se cumpla una condición, o bien un bloque de
instrucciones alternativo en caso de no cumplirse dicha condición.

Sintaxis:
SI
condición
ENTONCES

      Bloque
de
instruccione
s

SINO

Bloque
de
instrucc
iones
alternat
ivo
Fuente propia
FINSI

Si la condición se cumple, se ejecutarán las instrucciones del "Bloque de


instrucciones", en caso contrario se ejecutarán las instrucciones del bloque
alternativo. Tanto si se ejecuta un bloque de instrucciones u otro, el flujo de
ejecución continuará por la instrucción que sigue al FINSI.

SEGÚN

Esta instrucción equivale a anidamientos de la condición "Si...Entonces", es decir


selecciona entre varios casos posibles el que coincida con el valor obtenido por una
variable o expresión, ignorando los demás casos, ejecutándose lo establecido para
ello sin necesidad de establecer varias condiciones "Si...Entonces". En caso de que
ninguna opción corresponda al valor tomado por la variable o expresión evaluada,
el programa ejecutaría la instrucción "De Otro Modo", que sería la paralela a la
instrucción "SiNo". Y al terminar,  se ejecute la bifircación que se ejecute, el flujo
de ejecución del programa pasa a la instrucción que sigue al "Fin Según".

Sintaxis:

Segun (expresión) Hacer

     opción_1:

          Instrucciones

     opción_2:

          Instrucciones

     ...

     ...

     De Otro Modo:

          Instrucciones
FinSegun

Esta estructura se utiliza mucho cuando en un programa se necesita mostrar al


usuario un menú de opciones para elegir una, de tal forma que justo después de
que el usuario introduzca la opción deseada, la instrucción "Según" derive el flujo
de ejecución al camino correspondiente a esa opción.

ESTRUCTURA REPETITIVA /BUCLE


Estas estructuras de control son las que permiten ejecutar una serie de
instrucciones de forma repetitiva. Reciben el nombre de estructuras
repetitivas, estructuras iterativas o bucles.

Hay varios tipos de bucles pero todos tienen un factor en común, que no es otro
que el evaluar una condición, que será la que de lugar a ejecutar las instrucciones
que hay dentro de la estructura o no. Una vez terminada la ejecución de todas las
instrucciones contenidas en la estructura, podrá repetirse la ejecución de las
mismas o no dependiendo de la condición evaluada. Cuando dicha condición deja
de cumplirse, el flujo del programa continuará por la siguiente instrucción que haya
después del bucle.

En el uso de las estructuras repetitivas es muy común cometer el error de crear un


bucle infinito, que no es otra cosa que un bucle que se repite constantemente una
y otra vez, sin tener un final. Por tanto, deberás tener especial cuidado cuando los
utilices, y comprobar que efectivamente habrá al menos un caso en el que haya
una salida de cada bucle.

En los apartados siguientes puedes estudiar cada tipo de bucle con detenimiento y
verás más claro el funcionamiento de los mismos.

MIENTRAS

La instrucción "Mientras" evaluará una condición, se ejecutará el bloque de


instrucciones del interior del bucle. Al llegar al final del bucle, se regresará al
principio para volver a evaluar la condición y comenzar de nuevo el proceso, que
seguirá ejecutándose de forma cíclica hasta que la condición deje de cumplirse.

Sintaxis:

Mientras (condición) Hacer

Bloque de instrucciones

FinMientras

Para que el programa entre a procesar lo previsto dentro del bucle se tiene que
cumplir una condición. Es decir si nunca se cumple esa condición el programa no
entrará nunca en el interior del bucle. Por tanto el programa entrará en el bucle,
cero, una, dos, ... o bien n veces, pero no debe entrar infinitas veces.
Es importante no olvidar esta característica de la instrucción. Una vez que el flujo
de ejecución pase al interior del bucle, la condición deberá pasar de verdadera a
falsa en algún momento para que el bucle tenga fin. El progamador tiene diversas
formas de controlar todo esto para que no se produzca el bloqueo, por ejemplo
mediante cambios en valores de las variables, contadores, salidas directas o
deseadas por el usuario, etc.

Esta instrucción, al igual que las anteriores, permite anidamientos (huelga ya decir
la importancia de las tabulaciones de cara a la fácil comprensión del programa)

REPETIR HASTA

Esta instrucción es muy parecida a la precedente. También se trata de un bucle que


tiene que tener una salida válida para evitar bloqueos y donde igualmente se usan
los controles comentados en el apartado anterior. En cuanto al número de
repeticiones, al igual que en la anterior es indeterminado, es decir no está
prefijado, pero debe ser finito, aunque hay una diferencia fundamental, que la
condición se evalúa al final de la sintaxis, por lo que como mínimo al menos una
vez se ejecutará lo que esté programado en el interior del bucle. Después si
la condición sigue manteniéndose la iteración continúa, hasta que la condición mute
a verdadera. Si sólo se cumple una vez entrará una vez y seguirá después de la
instrucción "Hasta que" por la ruta normal del programa.

Este tipo de bucle es idóneo para depurar datos de entrada por teclado ya que
dichos datos al menos se deben teclear una vez. Por ejemplo, imagina que tu
programa debe pedirle por teclado al usuario un número comprendido entre 1 y 10,
si el usuario introduce un número que no esté en ese intervalo el programa debe
pedirle de nuevo un número correcto, y seguir así hasta que el número cumpla la
condición.

Sintaxis:

Repetir

Instrucción.

Instrucción.

...

...

Hasta Que (condición)

PARA

Esta instrucción es otro bucle parecido a los anteriores, con más similitudes por
ejemplo con mientras, pero en definitiva otra estructura repetitiva con sus propias
características. Se usa por tanto para repetir un proceso un número determinado
de veces. El número de repeticiones se debe conocer previamente. Por ejemplo si
tenemos que buscar un dato referente a un alumno en una lista de una clase con
40 alumnos, sabemos que tendremos que usar un bucle que repase 40 alumnos. En
cambio, si tenemos que buscar un dato en un fichero que no tiene un número
constante de registros, a priori no sabremos el número de búsquedas que tiene que
realizarse. Por esta razón se suele usar esta instrucción cuando se conoce
previamente el número de repeticiones que deseamos hacer y los otros tipos de
bucles cuando no se conoce.

Al igual que el bucle "Mientras", puede iterar cero o más veces. En el bucle "Para"
se utiliza una variable para contabilizar las repeticiones que se realizan. Esa
variable tomará un valor inicial la primera vez que la ejecución llega al bucle, se va
incrementando con un paso determinado al final del bucle y se vuelve a evaluar su
valor para comprobar que no se ha llegado a un valor final especificado. Cuando la
variable sobrepasa ese valor final, el bucle ya no se ejecuta más.

ANIDAMIENTO DE
ESTRUCTURA DE CONTROL
Como has podido observar, todas las estructuras de control de flujo en la ejecución
de nuestros programas, sean condicionales o repetitivas, tienen un comienzo y un
final, e incluyen en su interior bloques de instrucciones a ejecutar. También has
podido comprobar que pueden anidarse, es decir, que pueden estar incluidas unas
dentro de otras. Para mejorar el entendimiento de los algoritmo un buen
programador hará uso tanto de las tabulaciones adecuadas, como de dibujar (si el
algoritmo se representa en papel) líneas que unan el comienzo y el final de cada
estructura de control.

En esta maraña de código hay que tener en cuenta un detalle fundamental para
que nuestros programas sigan la estructura correcta: Dos estructuras de control no
pueden entrelazarse. La mejor forma de entender este aspecto es observando esta
imagen en la que puedes comparar un algoritmo con estructuras de control
correctamente implementadas frente a otro que es incorrecto.

PASO A PHP
COMENZANDO A ESCRIBIR SCRIPTS:
Los scripts de php deben empezar por "<?php" y terminar por "?>". Es
decir, para hacer una similitud con pseudocódigo, la palabra "Algoritmo" equivaldría
a "<?php", y la palabra "FinAlgoritmo" equivaldría a "?>". En el interior de esas dos
marcas irá todo el código fuente de nuestro script php.
PSEUDOCÓDIGO PHP

Algoritm <?php
o

instru
ccione instruc
s ciones;

instru instruc
ccione ciones;
s ...
... ?>
FinAlgorit
mo

Otra característica de este lenguaje, como podrás observar en la tabla anterior, y al


igual que en otros muchos, es que las instrucciones en php deben acabar en
punto y coma.

MOSTRAR INFORMACIÓN POR PANTALLA:


Para mostrar por pantalla información, php cuenta con varias instrucciones: print,
printf, echo, ... Siendo esta última una de las más utilizadas. Puede decirse que la
instrucción echo es la equivalente a la instrucción "Escribir" de pseudocódigo. El
texto que queramos mostrar se pondrá a continuación de la instrucción echo,
pudiendo ir encerrado entre comillas simples o dobles (más adelante se verá la
diferencia entre ambos tipos de comillas).
PSEUDOCÓDIGO PHP

Algoritmo
<?php
...
...
Escri
bir echo
"Hola "Hola
mund mund
o" o";

... ...

FinAlgorit ?>
mo

La sentencia echo admite varios parámetros separados por comas, es decir, que
podría escribirse algo así:    echo "Hola " , " mundo";

O incluso utilizando el operador de concatenación, que en php es el punto:     echo


"Hola " . " mundo";

LOS COMENTARIOS:
En php, los comentarios se insertan en el código fuente utilizando una serie de
símbolos, tanto para una sola línea como para varias lineas contiguas. En el
siguiente ejemplo verás cuáles son esos símbolos:
PSEUDOCÓDIGO PHP
Algoritmo

//
Come
ntari
o en <?php
una
//
línea
Come
// ntario
Come en
ntari una
o en línea
una
#
línea
Come
/* ntario
Come en
ntari una
o linea
escrit
/*
o
Come
e ntario
n escrit
v o
a
e
ri
n
a
va
s
ri

as
n
li
e
n
a
ea
s
s
d
d
e
e
t
te
e
xt
x
o
t
o */
*/ instruc
ciones;
instru
ccione instruc
s ciones;
instru ...
ccione
s ?>

...

FinAlgorit
mo
LAS VARIABLES:
Las variables en php deben comenzar por el signo $ seguido del nombre de la
variable. El nombre de la variable debe empezar forzosamente o bien por una letra
o bien por el guión bajo, nunca por un número. Ejemplo de variables en php
podrían ser los siguientes:  $contador, $altura, $base, $_area.

Otra característica de php es su propiedad de case-sensitive, que no es otra cosa


que el lenguaje hace distinción entre letras mayúsculas y minúsculas a la
hora de nombrar variables. Por ejemplo, en php las variables $altura, $Altura,
$ALTURA o $AltuRa son cuatro variables distintas.

Al crear una variable en php no se especifica el tipo de dato sino que, en tiempo de
ejecución, es el intérprete de php el que lo determina según el valor que se le
asigne a la variable creada.

Como las variables se distinguen por comenzar con el signo $, se pueden insertar
dentro de cadenas de texto cuando se imprime información por pantalla:

$usuario="Juan";

echo "Hola $usuario";          // esta instrucción sería equivalente a 


echo "Hola ",$usuario;

LOS TIPOS DE DATOS:


En php podrás utilizar como tipos de datos simples los siguientes: números enteros
(integer), números en coma flotante (float), cadenas (string) y booleanos
(boolean, que podrán tomar dos valores posibles: true o false).

LAS CONSTANTES:
Las constantes no necesitan llevar delante el signo $, y se crean con una función
especial que tiene php, la función "define". La sintaxis de define es la sifguiente:

define("NOMBRE_CONSTANTE",valor);

El nombre de la constante suele ir, por convenio, en mayúsculas (es un convenio


estándar en programación que los identificadores de constantes vayan en
mayúsculas y, aunque no es obligatorio, es recomendable para detectarlas con
mayor facilidad dentro del código fuente). El valor asignado deberá ir también entre
comillas si es un valor de tipo texto.

LOS OPERADORES:
Los operadores aritméticos son: la suma (+), la resta (-), el producto (*), la
división (/) y el módulo (%).

Los operadores lógicos son: and (también puede usarse &&), or (también la doble
barra ||) y ! para la negación.

Los operadores relacionales son los que se muestran en la siguiente tabla:


OPERADOR DESCRIPCIÓN
== verdadero si los dos
operandos son iguales
verdadero si los dos
=== operandos son iguales
tanto en valor como en tipo
verdadero si los dos
!=
operando son distintos
verdadero si los dos
!== operandos son distintos, en
valor o tipo
verdadero si el primer
< operando es menor que el
segundo
verdadero si el primer
> operando es mayor que el
segundo
verdadero si el primer
<= operando es menor o igual
que el segundo
verdadero si el primer
>= operando es mayor o igual
que el segundo

El operador de concatenación es el punto como ya comentamos más arriba.

El operador de asignación es el =.

También podría gustarte