viernes, 14 de diciembre de 2012

Lección 2- Estructuras de selección (if / if else)



Estructura de selección if 


La estructura if (significa "si" en español) , trabaja con proposiciones , esto quiere decir que si una proposición es verdadera , se ejecutará un determinada tarea , en cambio, si la proposición es falsa , no se ejecutara la tarea establecida. Su estructura básica es la siguiente:

if (aquí va la(s) proposición(es) ) {

instrucciones;

}

Para quedar más claro vamos a un ejemplo:

 Aplicaremos if a un programa simple:




Resultado: si el usuario digita un número mayor o igual a 0
-------------------------------------------------------------------------------
Digite su numero
2
El numero es correcto y positivo
La multiplicacion es: 4
-------------------------------------------------------------------------------

Resultado: si el usuario digita un número menor que 0
-------------------------------------------------------------------------------

Digite su numero
-6
Numero invalido ,  solo numeros positivos
-------------------------------------------------------------------------------


En este momento se estarán preguntado: Porqué una estructura if lleva bloques ( { } ) y la otra no?

Cada estructura if (o cualquier estructura, ya se de repetición o selección) , por defecto soporta una instrucción en su cuerpo (como se nota en el segundo if del programa), pero si ocupamos tener más de una instrucción en la estructura if como se muestra en el primer if del programa, debemos utilizar bloques para encerrar las instrucciones dentro del cuerpo de if , de lo contrario quedaría fuera de ella y siempre se mostraría aunque la proposición sea verdadera o falsa!!

Resultado: si no se colocara los bloques ( { } ) en el primer if

--------------------------------------------------------------
Digite su numero
-8
La multiplicacion es: 64
Numero invalido ,  solo numeros positivos
--------------------------------------------------------------

Se mostraría la multiplicación ya que se encuentra fuera del bloque de if , como dijimos anteriormente, if por defecto solo soporta una instrucción por esta razón se muestra la multiplicación.

No obstante , podríamos colocar bloques a un if , aunque este, solo tenga una instrucción , es totalmente válido (se los recomiendo , porque de esta forma hay mayor claridad en el programa):

if (numero<0){
cout<<"Numero invalido ,  solo números positivos"<<endl;
}

Como mostramos anteriormente en el formato de la estructura if , es posible evaluar más de una proposición en su cuerpo mediante los operadores lógicos &&(y) , ||(ó).

Ejemplo , utilizando el programa anterior:




Como se muestra en el programa anterior , el operador lógico && tiene dos proposiciones, si alguna de estas , no se cumple o las dos son falsas entonces no se ejecuta if y se salta a la siguiente instrucción del programa.
En caso contrario, si las dos proposiciones son verdaderas , se ejecuta if.(única forma que se ejecute if)

Ahora, el operador lógico || tiene dos proposiciones, si alguna de estas, no se cumple (es falsa) entonces se ejecuta if. En caso contrario, únicamente si las dos proposiciones son verdaderas se ejecuta if. La única forma que no se ejecute el if es que las dos proposiciones sean falsas.

Resultado: si el usuario introduce un numero menor  igual a 0 y menor igual que 12

---------------------------------------------------------------------------
Digite su numero
10
El numero es correcto y positivo
La multiplicacion es: 100
---------------------------------------------------------------------------

Resultado: si el usuario introduce un numero menor que 0 ó mayor que 12


---------------------------------------------------------------------------

Digite su numero
14
Numero invalido ,  solo numeros positivos y menores que 13
-------------------------------------------------------------------------

Estructura de selección if / else

La estructura de selección if / else funcionan de una manera peculiar, si la proposición de una estructura if no se cumple entonces la estructura de selección else (de lo contrario) se ejecuta mostrando lo que tiene almacenado en su cuerpo.

Un ejemplo sencillo en el cual el usuario digita la nota final obtenida en un determinado curso:


Como pueden observar en el programa anterior, la estructura if nos dice que si la nota digitada por el usuario es igual ó mayor que 70 se muestra el mensaje de aprobado , de lo contrario (else) el programa muestra el mensaje de reprobado. Lo anterior quiere decir que si if no se cumple entonces se ejecuta else, es decir, que la nota obtenida es menor que 70.

Se estarán preguntando: Porqué se utilizo el operador logico == , se puede utilizar = ?
La respuesta sería no, porque el operador = es utilizado únicamente cuando se asigna un valor a una variable, en cambio ==  es utilizado solo en proposiciones.

Bueno hasta aquí llega la segunda lección , cualquier duda pueden postearla en un comentario

1 comentario:

  1. lo explicas muy bien amigo la verdad estoy entendiendo bastante bien te e estado copiando los programas y estoy experimentando con ellos ^^ voy bastante bien prlomenos entendi mucho mas que las anteriores veses en otras guias ^^ gracias por tomarte el tiempo de hacer la guia espero no te ayas deanimado y no saques mas material porque seria una lastima :) saludos

    ResponderEliminar