Sei sulla pagina 1di 15

La estructura condicional if ...

else
En la gran mayora de los programas ser necesario tomar decisiones
sobre qu acciones realizar. Esas decisiones pueden depender de los
datos que introduzca el usuario, de si se ha producido algn error o
de cualquier otra cosa.
La estructura condicional if ... else es la que nos permite tomar ese
tipo de decisiones. Traducida literalmente del ingls, se la podra
llamar la estructura "si...si no", es decir, "si se cumple la condicin,
haz esto, y si no, haz esto otro".
Un ejemplo sencillo sera el siguiente (no se trata de un programa
completo, sino tan slo una porcin de cdigo):
if(edad sweeps<18)
printf("No puedes acceder.\n");
else
printf("Bienvenido.\n");
Este cdigo de ejemplo dice que si edad es menor que 18 se
imprimir "No puedes acceder.\n", mientras que en caso contrario se
imprimir "Bienvenido.\n".
Como se ve en el ejemplo, la estructura de un condicional es bastante
simple:
if(condicin){
sentencias_si_verdadero;
}else{
sentencias_si_falso;
}
Cuando la condicin sea verdadera, se ejecutarn las sentencias
dentro del primer bloque de cdigo, cuando la condicin sea falsa, se
ejecutarn las sentencias del segundo bloque de cdigo.
La indentacin (los espacios al comienzo de las lneas) no es
necesaria, pero ayuda a la claridad del cdigo. La utilizacin de las
llaves {...} es obligatoria cuando se quiere utilizar ms de una
instruccin por bloque, y optativa cuando slo se quiere escribir una
instruccin. Por claridad, sin embargo, es recomendable utilizarlas
an cuando slo vaya a haber una instruccin.
El bloque del else es opcional. Si no se lo encuentra, slo se realizar
la accin correspondiente al bloque if.
A continuacin, un ejemplo con una funcin, que devuelve el mayor
de dos nmeros:
int mayor(int a,int b)
{
intelmayor= a;
if(b > a){
elmayor= b;

}
returnelmayor;
}
[editar]Operadores de Comparacin
Las condiciones son expresiones que utilizan operadores para tomar
la decisin apropiada. Son los operadores de comparacin, y su
resultado puede ser 1 (equivalente a verdadero) o 0 (equivalente a
falso). Este resultado provocar que se ejecute el cdigo del
bloque if o el del bloque else, segn corresponda.
A continuacin un listado de los posibles operadores de comparacin
en C y su significado.

<
>
<=
>=
==
!=

Operadores de Comparacin
Operador
Significado
estrictamente menor que
estrictamente mayor que
menor o igual que
mayor o igual que
igual a
distinto de

Por otro lado, en C se toma como falso el valor 0, y como verdadero


cualquier otro valor. Esto nos permite utilizar condiciones sin
operador:
floatdivision(int dividendo,int divisor)
{
if(divisor){
returndividendo/ divisor;
}else{
printf("No se puede dividir por cero\n");
return0;
}
}
[editar]Agrupacin de operadores
Adems, es posible utilizar varios de estos operadores a la vez,
mediante los operadores lgicos "y", "o" y "no"; los operadores
correspondientes en C son &&, || y !, respectivamente. Para realizar
combinaciones de operadores, se utilizan parntesis que agrupan las
condiciones.
Hay que notar que el operador ! es unario, es decir, no lleva ningn
operando a su izquierda, afecta slo al operando que hay a su
derecha.
Un ejemplo donde se ven agrupaciones de operadores puede ser la
decisin de si un ao es bisiesto o no. Los aos son bisiestos si son

divisibles por 4, pero no si son divisibles por 100, a menos que


tambin sean divisibles por 400.
if((!(a %4)&&((a %100)))||!(a %400)){
printf("es un ao bisiesto.\n");
}else{
printf("no es un ao bisiesto.\n");
}
En este caso, se utiliza la operacin mdulo, que obtiene el resto de la
divisin entera de un nmero por otro. Cuando un nmero es divisible
por otro, el resto de su divisin entera ser cero. Siendo que cero es
equivalente a falso, y cualquier valor distinto de cero es equivalente a
verdadero, podemos usar el operador ! para verificar si el nmero es
mltiplo de 4, de 100 o de 400.
[editar]Evaluacin de corto circuito
La evaluacin en corto circuito es una caracterstica del lenguaje C
que se utiliza para optimizar la ejecucin de programas. Consiste en
que el programa puede verificar si una expresin es verdadera o falsa
antes de haber evaluado toda condicin.
Por ejemplo, si se tiene una condicin como la siguiente:
if((a >2)||(b <4)){
...
}
Al ejecutarse el programa, se evaluar primero si a > 2. En el caso en
que sea verdadero, no continuar con la siguiente condicin, ya que
el resultado ser de cualquier modo verdadero.
De la misma forma, si la condicin fuera:
if((a >2)&&(b <4)){
...
}
En este caso, si no se cumple que a > 2, no se evaluar la siguiente
condicin, ya que el resultado ser falso de todos modos.
Esta caracterstica no tiene demasiada importancia al comenzar a
programar, pero facilitar ciertas operaciones y optimizaciones en
programas avanzados.
()if
..
Estructura condicional (if) en PHP

12/02/2011

2:55 pm

marcofbb
La estructura condicional (if) es fundamental a la hora de hacer una
pgina web dinmica, sirbe para que una vez llegado a un cierto
punto, tome un camino concreto en determinados casos. Se utiliza el
conjunto de instrucciones: if, else y elseif.
Estructura base:
if(Condicin)
{
Instruccin 1;
Instruccin 2;
}
else
{
Instruccin A;
Instruccin B;
}
Cuando la ejecucin llega al punto donde se encuentra la instruccin
if, el programa verificar el cumplimiento o no de la condicin. Si la
condicin es verdadera se ejecutarn las instrucciones 1 y 2, de lo
contrario, se ejecutarn las instrucciones A y B. En los casos en que
las condiciones sean varias se agregan if dentro de los if.
Estructura:
if(Condicion1)
{
Instruccin 1;
Instruccin 2;
}
else
{
if(Condicion2)
{
Instruccin A;
Instruccin B;
}
else
{
Instruccin X;
Instruccin Z;

}
}
De este modo se pueden introducir tantas condiciones como se quiera
dentro de la condicin principal. Una variante de este sistema es
utilizando la sentencia elseif, que permite en una sola lnea introducir
una condicin adicional:
if(Condicion1)
{
Instruccin 1;
Instruccin 2;
}
elseif(Condicion2)
{
Instruccin A;
Instruccin B;
}
else
{
Instruccin X;
Instruccin Z;
}
== para ver si una variable es igual a otra.
!= distinto.
>= mayor o igual.
> mayor.
<= menor o igual
< menor
La mejor forma de entender esta estructura condicional es por medio
de ejemplos. El primero que nos plantearemos es generar un valor
aleatorio (es decir lo elige la mquina al azar, como extraer una
bolilla de un bolillero de lotera) comprendido entre 1 y 10. Luego
mostraremos un mensaje si es menor o igual a 5 o si es mayor a 5.
El programa completo es:
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$valor=rand(1,10);
echo"El valor sorteado es $valor<br>";
if($valor<=5)

{
echo"Es menor o igual a 5";
}
else
{
echo"Es mayor a 5";
}
?>
</body>
</html>
Ahora vamos a poner en ejemplo un if con otro if dentro
<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$valor=rand(1,100);
echo"El valor sorteado es $valor<br>";
if($valor<=9)
{
echo"Tiene un dgito";
}
else
{
if($valor<100)
{
echo"Tiene 2 dgitos";
}
else
{
echo"Tiene 3 dgitos";
}
}
?>
</body>
</html>
Lo que hace este script es saber si el nmero generado
aleatorioamente por nuestro servidor, esto lo hace la
lnea $valor=rand(1,100);, tiene 1, 2 o 3 digtos.
Si el valor generado es menor a 9 tiene 1 digto, si no es menor a 9
sigue otro camino para saber si tiene 2 o 3 digtos.
El mismo ejemplo con la estructura if/elseif

<html>
<head>
<title>Problema</title>
</head>
<body>
<?php
$valor=100;//rand(1,100);
echo"El valor sorteado es $valor<br>";
if($valor<=9)
{
echo"Tiene un dgito";
}
elseif($valor<100)
{
echo"Tiene 2 dgitos";
}
else
{
echo"Tiene 3 dgitos";
}
?>
</body>
</html>
Para hacer esta clase me gue en la explicacin que dio la
pagina PHPYA para buscar la mejor forma de que entiendan esto que
se me hacia difcil de explicar.
Hilo donde estn todos los artculos para aprender PHP
.

La estructura condicional (IF-ELSE)


La estructura IF-ELSE permite establecer una bifurcacin
o alternativa dentro de una secuencia de ordenes. Es
decir, en ocasiones es posible que deseemos que el
programa ejecute una instruccin o instrucciones, pero
solo si se cumple determinada circunstancia, y, en caso
contrario, o bien no hacer nada, o bien ejecutar otras
instrucciones diferentes.
Por ejemplo, queremos hacer un alias que a intervalos de
un minuto mida nuestro lag, y solo si este supera los 15
segundos nos enve un mensaje a la pantalla de Status
avisndonos de cuanto lag tenemos. Esto no es posible

hacerlo mediante una secuencia lineal de instrucciones;


es preciso que el programa discierna en algn momento
si procede o no ejecutar la orden de imprimir un mensaje.
Esta posibilidad es la que nos facilita la estructura IF.
En definitiva, IF comparar valores, y ejecutar o no
diferentes instrucciones, en funcin del resultado de la
comparativa.
El formato general completo de la estructura IF es el
siguiente:
if (Valor_1 operador Valor_2) { comandos }
elseif (Valor_1 operador Valor_2) { comandos }
else { comandos }
La orden if comparar Valor_1 y Valor_2 mediante
un operador de comparacin. En funcin de esta
comparacin ejecutar o no el comando o comandos
incluidos dentro de las llaves. Por ejemplo:
if (%Variable_1 > %Variable_2) {
echo -s Atencin, la primera variable es mayor que la
segunda !!!
splay c:\sonidos\alarma.wav
}
Esta orden compara del contenido de dos variables, y
solo en caso de que la primera variable sea mayor que la
segunda enviar un mensaje a la pantalla de Status, y
har sonar un sonido Wav que supuestamente tenemos
dentro de un directorio de la unidad C: llamado
"sonidos".
Obsrvese que la condicin del if se debe de poner entre
parntesis, y las instrucciones internas a ejecutar estarn
encerradas entre llaves (si solo hay una instruccin no
son necesarias las llaves).
Como se puede ver en la sintaxis general del if, junto
este se pueden emplear otras dos
instrucciones: elseif y else, aunque estas solo de forma
opcional. Si podemos leer la sintaxis de IF de la siguiente
forma:
Si ( pasa esto ) { Haz esto }

la del elseif equivaldr a:


En caso contrario, si ( pasa esto ) { Haz esto }.
El anexo else es una posibilidad que permite ejecutar
una serie de instrucciones en caso de que lo anterior no
se haya producido. Las instrucciones comprendidas
dentro del else se ejecutarn siempre que no hay
resultado cierta la condicin del if ni, de existir, la
del elseif. Si no se especifica un else, el script
sencillamente continuar a desde la instruccin siguiente
al ltimo "}", o bien terminar si no hay nada ms.
Es perfectamente posible "anidar" instrucciones if, es
decir, incluir ms ifs dentro del bloque de instrucciones
de un if. Por ejemplo, queremos hacer un alias que se
llame "nmeros". Este, al ejecutarse, nos pedir tres
nmeros cualesquiera que cargar en tres variables, a
continuacin evaluar cual es el mayor de los tres y nos
lo imprimir en la ventana de Status. Podramos hacer
algo como lo siguiente:
/nmeros {
set %A $$?="Introduce el primer nmero"
set %B $$?="Introduce el segundo nmero"
set %C $$?="Introduce el tercer nmero"
if ( %A > %B ) {
if ( %A > %C ) { echo -s El mayor es %A }
else { echo -s El mayor es %C }
}
}
elseif ( %B > %C ) { echo -s El mayor es %B }
else { echo -s El mayor es %C }
unset %A %B %C
Los operadores de comparacin que podemos utilizar
dentro de la condicin de un if son los siguientes:

A == B

A Igual a B

A != B

A distinto de B

A<B

A menor que B

A>B

A mayor que B

A >= B

A mayor o igual que B

A <= B

A menor o igual que B

A // B

A es mltiplo de B

A\\B

A no es mltiplo de B

A isin B

La cadena de caracteres A se encuentra incluida dentro


de la cadena B

A iswm B

La cadena A es idntica a la cadena B

A isnum B

A es un nmero incluido dentro de la cadena de nmeros


B. Si no se pone B se evala simplemente si A es un
nmero

A isletter B Igual al anterior pero con letras en lugar de nmeros


A ison B

El nick A est en el canal B

A isop B

El nick A es operador en el canal B

A isvo B

El nick A tiene voz en el canal B

A ischan

A est en este momento en el mismo canal que nosotros

A isauto B

El nick A est en muestra lista de auto-op para el canal B


(B opcional)

A isignore

A est en nuestra lista de ignorados

A isprotect A est en nuestra lista de protegidos en el canal B (B


opcional)
A isnotify

A est en nuestra lista de notify

En esta tabla se han usado, para hacerla ms


comprensible, los operndos genricos A y B; en su lugar
podemos usar valores numricos, cadenas de caracteres,
variables (identificndolas con su nombre precedido del
smbolo %), o identificadores (con su nombre precedido
del smbolo $).
Si anteponemos el smbolo ! delante de cualquiera de los
operadores de la tabla anterior este ser negado, es
decir, la condicin se evaluar como cierta no cuando
suceda eso, sino cuando nosuceda.
Hasta ahora hemos visto como la estructura if puede
evaluar una condicin simple; no obstante es tambin
posible crear condiciones complejas combinando varias

con o operadores lgicos. El mIRC admite dos tipos de


operadores lgicos para enlazar entre s dos o mas
condiciones simples formando as una sola condicin
mltiple:

Operador AND (&&). En castellano "y":

Si (( pasa esto ) y ( esto ) y ( adems esto )) { Haz


esto }
Por ejemplo:
if (( $me !iswmSomaTic ) && ( $me isop #ayuda_irc ))
{ mode $me -o #ayuda_irc }
Esta instruccin comprobar si mi nick es distinto de
SomaTic, y adems si tengo el estatus de operador
dentro del canal #ayuda_irc, de suceder ambas cosas me
retirar dicho estatus.

Operador OR ( || ). En castellano "o":

Si (( pasa esto ) o ( esto ) o ( esto otro )) { Haz esto }


Por ejemplo:
if (( %A > 20 ) || ( %B < 10 )) { echo -s Variable fuera de
rango }
Esta orden comprobar que la variable %A contiene un
nmero en el rango [10-20] , en caso contrario manda al
status un aviso.
EL COMANDO "goto"
El uso del comando goto es un recurso muy til en
especial cuando se utiliza desde dentro de una
estructura if. La sintaxis de este comando es:
goto<etiqueta>
La orden goto provoca un salto automtico dentro de la
secuencia que el programa utiliza para leer las lneas de
un script, pasando directamente a leer a partir de una

determinada etiqueta, las lneas que continan a partir


de esta. Una etiqueta no es ms que una palabra que
ocupa una lnea del script, y que se identifica como tal
por tener el smbolo ":" delante. La llamada a una
etiqueta desde la orden goto no debe de llevar los dos
puntos delante.
Ejemplo:
/CargaVar {
:PideDato
set %valor $$?="Introduzca un nmero entre
0 y 9"
if (( %valor < 0 ) || ( %valor > 9 )) {
echo -a Dato errneo, introduzca solo
un dgito entre 0 y 9
gotoPideDato
}
}
Este alias es una sencilla rutina que nos permite aceptar
valores para una variable, depurando que solo se
introduzca un dgito entre 0 y 9, de no ser as el alias
volver una y otra vez a la etiqueta PideDato solicitando
un nuevo valor para la variable.
EJEMPLOS:
1- El siguiente alias nos presentar la lista de operadores
del canal en que nos encontramos en este momento. Se
puede observar el empleo de la instruccin de salto
incondicional (goto), el uso del
parmetro $nick(canal,numero), el
comando inc(%variable), y la estructura if.
/listaOPs {
echo -a * ListandoOperadores en #
set %i 1
:sigue
set %nick $nick(#,%i)
if ( %nick == $null ) { goto final }
if ( %nick isop # ) { echo 3 %nick is un
Op! }
inc %i ;(Se incrementa en uno la variable %i)
goto sigue
:final
echo -a * Fin de la lista de operadores de #.
}

2- Este ejemplo presenta un alias que imprimir en la


pantalla de Status una tabla de los caracteres ASCII entre
el 33 y el 241 ambos inclusive.
/TablASCII {
set %num 33
echo -s Tabla ASCII
:presenta
if ( %num> 241 ) { goto fin }
echo -s $chr( %num ) es el carcter ASCII
carcter ASCII nmero: %num
inc %num
goto presenta
:fin
echo -s Fin de la tabla.
}
.
Estructura condicional if
Igual que otros lenguajes cuando tenemos que tomar una decisin en
nuestro
programa
debemos
utilizar
la
estructura
if.
Algo muy importante en el lenguaje Python que no lo tienen otros
lenguajes es que la indentacin es obligatoria e indica las intrucciones
contenidas en un if.
Analicemos el siguiente ejemplo:
nombre='juan'
edad=15
if edad<18:
print nombre
print ' es menor de edad.<br>'
print 'Fin del programa'
La estructura if contiene una condicin, si dicha condicin se verifica
verdadera luego se ejecutan todas las instrucciones que se
encuentran indentadas (es decir corridas a derecha) Es muy comn
utilizar una indentacin de 4 espacios.
En nuestro ejemplo la instruccin:
print 'Fin del programa'
se encuentra fuera de la estructura if.

Si la condicin
intrucciones:

se

verifica

verdadera

luego

se

ejecutan

las

print nombre
print ' es menor de edad.<br>'
Es obligatorio luego de la condicin del if disponer los dos puntos
if edad<18:
Tambin similar a otros lenguajes la estructura condicional if tiene
una segunda parte que es el else, dicha seccin se ejecuta si la
condicin se verifica falsa.
nombre='juan'
edad=15
print nombre
if edad<18:
print ' es menor de edad.<br>'
else:
print ' es mayor de edad.<br>'
print 'Fin del programa'
Nuevamente tener en cuenta que las instrucciones que se indiquen
por el else deben estar corridas a derecha (indentadas).
La palabra clave else requiere tambin los dos puntos
else:
Problema resuelto
Generar un nmero aleatorio comprendido entre 1 y 20. Luego
mostrar si el valor generado tiene uno o dos dgitos.
Para generar un valor aleatorio hay una librera que debemos
importar (veremos ms adelante el concepto de mdulos)
importrandom
Luego podemos llamar la funcin randint de dicho mdulo, esta
funcin requiere dos valores enteros y nos devuelve otro valor entero
comprendido entre ellos (lo selecciona de forma aleatoria, es decir al
azar)
x=random.randint(1,20)

ejecutar

Potrebbero piacerti anche