Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Los condicionales if, son una estructura de control condicional, que nos permiten tomar
cierta decisión al interior de nuestro programa, es decir, nos permiten determinar qué
acciones tomar dada condición, por ejemplo, determinar si un numero cualquiera es mayor
que 10 y de acuerdo a esto mostrar un mensaje.
En resumen, un condicional if es una estructura que nos posibilita definir las acciones a
ejecutar si se cumple cierta condición.
int resultado = 0;
cout << "Cuanto es 39+50? ";
cin >> resultado;
if(resultado == 39+50)
{
cout << "Respuesta Correcta. Felicitaciones!\n";
}
El código funcional completo sería el siguiente:
#include "iostream"
using namespace std;
int main()
{
int resultado = 0;
cout << "Cuanto es 39+50? ";
cin >> resultado;
if(resultado == 39+50)
{
cout << "Respuesta Correcta. Felicitaciones!\n";
}
system("PAUSE");
}
Condicional if else en C++. Declaración uso y sintaxis del if else en C++
Los condicionales if-else, son una estructura de control, que nos permiten tomar cierta
decisión al interior de nuestro programa, es decir, nos permiten determinar qué acciones
tomar dada o no cierta condición, por ejemplo, determinar si la contraseña ingresada por el
usuario es válida o no y de acuerdo a esto darle acceso al sistema o mostrar un mensaje de
error.
En resumen, un condicional if-else es una estructura que nos posibilita definir las acciones
que se deben llevar a cabo si se cumple cierta condición y también determinar las acciones
que se deben ejecutar en caso de que no se cumpla.
¿Cómo funciona un Condicional If-Else?
Para comprender mejor cómo funciona el condicional if-else, una muy buena forma es
partiendo de un ejemplo. Imaginemos que en nuestro programa, deseamos implementar un
sistema de ingreso de usuario, comprobando si la información suministrada coincide con
unos los valores correctos y en este caso mostrar un mensaje de bienvenida, y en caso de
que no, se mostrará un mensaje de error. Como podemos imaginar, es entonces necesario
hacer que nuestro programa, tome una decisión, de acuerdo a los valores ingresados por el
usuario, y definir los dos casos posibles en caso de fallo o en caso de que no. Es para esto
que sirve el condicional if-else, nos permite definir una condición que se debe cumplir y de
acuerdo a su cumplimiento o no tomar una acción correspondiente.
Sintaxis del Condicional If-Else en C++:
La sintaxis de un condicional if-else, es en principio similar a la del condicional if, pero
adicionando una nueva "estructura" que es el else, el cual indica la acción o conjunto de
acciones a llevar a cabo, en caso de que la condición del if no se cumpla. Cabe resaltar que
el else siempre se pone inmediatamente después del if, en caso de ser necesario, el else es
incapaz de funcionar por sí solo, siempre debe ir acompañado por un if. Veamos entonces
como es la sintaxis de este:
#include "iostream"
#include "string"
#include "stdlib.h"
int main()
{
string password = "";
cout << "Ingrese la contrasenia: ";
cin >> password;
if(password == "myClave")
{
cout << "Contrasenia correcta. Bienvenido";
}
else
{
cout << "Contrasenia incorrecta.";
}
system("PAUSE");
return 0;
}
Condicional switch en C++. Declaración uso y sintaxis de switch en C++
¿Qué es Condicional Switch?
Los condicionales Switch, son una estructura de control condicional, que permite definir
múltiples casos que puede llegar a cumplir una variable cualquiera, y qué acción tomar en
cualquiera de estas situaciones, incluso es posible determinar qué acción llevar a cabo en
caso de no cumplir ninguna de las condiciones dadas.
¿Cómo funciona el Switch?
La mejor forma de entender el funcionamiento de algo, es viendo un ejemplo de esto, de
este modo, me parece que para comprender de forma adecuada como funciona un
condicional Switch, es bueno hacerlo poniendo un ejemplo. Imaginemos entonces que
nuestro programa consta de un menú de opciones digamos 3 opciones, cada una
representada con un número correspondiente, es decir la opción uno corresponde al número
1, la dos al 2 y así sucesivamente, queremos entonces que de acuerdo a un número
ingresado por el usuario ejecutemos una acción correspondiente y en caso de que no
corresponda a ninguna de las posibles opciones, mostrar un mensaje de error cualquiera. De
este modo, podemos identificar 3 casos distintos para nuestro switch o en otras palabras,
hemos identificado tres condiciones posibles que puede llegar a cumplir nuestra variable: el
caso uno corresponde a que el valor ingresado por el usuario sea el 1, es decir ejecutar la
opción 1, el caso 2 el número 2, etc. adicionalmente hemos encontrado la opción que se
ejecutará por defecto en caso de no suceder ninguno de estos casos, es decir si el usuario
ingresa por ejemplo 10, mostraremos un mensaje de error cualquiera.
Sintaxis del Condicional Switch en C++:
La sintaxis de un condicional Switch es bastante distinta a la de un condicional típico, sin
embargo, es bastante intuitiva y fácil de comprender, es solo cuestión de acostumbrarse.
Veamos a continuación la estructura general de un condicional Switch y luego unos cuantos
ejemplos.
# include "iostream"
int main()
{
cout << "Ingrese la Opción a ejecutar: ";
int opcion = 0;
cin >> opcion;
switch(opcion)
{
case 1: cout << "Usted ha seleccionado la opción 1";
break;
case 2: cout << "Usted ha seleccionado la opción 2";
break;
case 3: cout << "Usted ha seleccionado la opción 3";
break;
default: cout << "Usted ha ingresado una opción incorrecta";
}
// system("PAUSE"); //Solo ponla si no te da error
return 0;
}
switch(opcion)
{
case 'a': cout << "Usted ha seleccionado la opción a";
break;
case 'b': cout << "Usted ha seleccionado la opción b";
break;
case 'c': cout << "Usted ha seleccionado la opción c";
break;
default: cout << "Usted ha ingresado una opción incorrecta";
}
El código funcional completo sería el siguiente:
# include "iostream"
int main()
{
cout << "Ingrese la Opción a ejecutar: ";
char opcion;
cin >> opcion;
switch(opcion)
{
case 'a': cout << "Usted ha seleccionado la opción a";
break;
case 'b': cout << "Usted ha seleccionado la opción b";
break;
case 'c': cout << "Usted ha seleccionado la opción c";
break;
default: cout << "Usted ha ingresado una opción incorrecta";
}
// system("PAUSE"); //Solo ponla si no te da error
return 0;
}
Eso es todo. Como ves, en esencia es el mismo código, pero debes asegurarte de poner las
diferentes opciones entre comillas simples ('), puesto que la comparación es entre
caracteres.
Detalles sobre el condicional switch en C++
En C++, NO puedes usar otra cosa diferente a número en cada case. Si necesitas comparar
cadenas de texto u otros tipos de datos, seguramente un condicional como el if o if-else
sean una mejor alternativa
Los caracteres también se pueden usar, pues en esencia se pueden representar como
números enteros (el lenguaje se encarga de eso por ti). Sin embargo, como indiqué, otros
tipos de datos no son recomendables
La sentencia default es opcional, así que si no lo deseas no la debes poner. Sin embargo, es
recomendable hacerlo, para así controlar todas las opciones posibles y que tu programa no
quede a la "suerte" en ciertos casos.
Dentro de cada case eres libre de poner varias líneas de código, incluso otras estructuras
como condicionales o ciclos. Sin embargo, es preferible mantener tu código ordenado y no
poner muchas. Recomendaría no poner más de 5 y preferiblemente solo una. Si deseas
hacer tareas complejas al interior de un case de un switch en C++, posiblemente sea mejor
hacer esas tareas en una función y llamar a esa función desde el case o simplemente usar un
if-else.
Así que, efectivamente, los condicionales switch y de hecho todos los condicionales en sí,
son extremadamente útiles pues permiten definirle a nuestro software múltiples vías de
ejecución contemplando así todas las posibilidades durante la ejecución. Me gustaría hacer
una leve aclaración, el condicional switch encuentra su utilidad al momento de tener más de
una posibilidad de valores para una variable cualquiera, evidentemente si nuestra variable
solo puede adquirir un valor útil para nosotros, nuestra alternativa inmediata debería ser un
if o un if-else, no un switch que resulta un poco mas engorroso de escribir, sin embargo
cuando tenemos varias posibilidades es mejor un switch que tener condicionales anidados o
un condicional después de otro.
Ciclo for en C++. Estructura, sintaxis y uso de un ciclo for en C++
Los ciclos for son lo que se conoce como estructuras de control de flujo cíclicas o
simplemente estructuras cíclicas, estos ciclos, como su nombre lo sugiere, nos permiten
ejecutar una o varias líneas de código de forma iterativa, conociendo un valor especifico
inicial y otro valor final, además nos permiten determinar el tamaño del paso entre cada
"giro" o iteración del ciclo.
En resumen, un ciclo for es una estructura de control iterativa, que nos permite ejecutar de
manera repetitiva un bloque de instrucciones, conociendo previamente un valor de inicio,
un tamaño de paso y un valor final para el ciclo.
¿Cómo funciona un Ciclo For?
Para comprender mejor el funcionamiento del ciclo for, pongamos un ejemplo, supongamos
que queremos mostrar los números pares entre el 50 y el 100, si imaginamos un poco como
seria esto, podremos darnos cuenta que nuestro ciclo deberá mostrar una serie de números
como la siguiente: 50 52 54 56 58 60 ... 96 98 100. Como podemos verificar, tenemos
entonces los componentes necesarios para nuestro ciclo for, tenemos un valor inicial que
sería el 50, tenemos también un valor final que sería el 100 y tenemos un tamaño de paso
que es 2 (los números pares). Estamos ahora en capacidad de determinar los componentes
esenciales para un ciclo for.
Vamos a ver ahora como es la sintaxis de un ciclo for en C++, así estaremos listos para
usarlos en nuestros programas de ahora en adelante
Sintaxis del Ciclo For en C++:
La sintaxis de un ciclo for es simple en C++, en realidad en la mayoría de los lenguajes de
alto nivel es incluso muy similar, de hecho, con tan solo tener bien claros los 3
componentes del ciclo for (inicio, final y tamaño de paso) tenemos prácticamente todo
hecho
for(int i=50;i<=100;i+=2)
{//Notemos que escribir i+=2 es similar a escribir i = i + 2
cout << i << endl;
}
El código funcional completo sería el siguiente:
#include "iostream"
#include "stdlib.h"
#include "iostream"
#include "stdlib.h"
int numero;
cin >> numero;
while(numero <= 100)
{
cout << "Ingrese un numero ";
cin >> numero;
}
El código funcional completo y un tanto más amigable para el usuario sería el siguiente:
#include "iostream"
Ciclo do-while en C++. Estructura, sintaxis y diferencias con el while. Cómo y cuándo
usar un ciclo do-while en C++
Los ciclos do-while son una estructura de control cíclica, los cuales nos permiten ejecutar
una o varias líneas de código de forma repetitiva sin necesidad de tener un valor inicial e
incluso a veces sin siquiera conocer cuando se va a dar el valor final, hasta aquí son
similares a los ciclos while, sin embargo el ciclo do-while nos permite añadir cierta ventaja
adicional y esta consiste que nos da la posibilidad de ejecutar primero el bloque de
instrucciones antes de evaluar la condición necesaria, de este modo los ciclos do-while, son
más efectivos para algunas situaciones especificas. En resumen un ciclo do-while, es una
estructura de control cíclica que permite ejecutar de manera repetitiva un bloque de
instrucciones sin evaluar de forma inmediata una condición especifica, sino evaluándola
justo después de ejecutar por primera vez el bloque de instrucciones
¿Cómo funciona un Ciclo Do-While?
Para comprender mejor el funcionamiento del ciclo while, usemos de nuevo el ejemplo de
la sección anterior sobre el ciclo while. Imaginemos entonces que por algún motivo,
queremos pedirle a un usuario una serie de números cualquiera y que solo dejaremos de
hacerlo cuando el usuario ingrese un número mayor a 100. Como vimos anteriormente, esto
se puede hacer por medio de un ciclo while, pero vamos ahora a ver como lo podemos
hacer usando un ciclo do-while mejorando así un poco nuestro algoritmo, evitando ciertos
comandos, tal como se dijo con el ciclo while, en efecto aquí estamos en la situación de no
tener ni idea de cuándo al usuario se le va a ocurrir ingresar un número mayor que 100,
pues es algo indeterminado para nosotros, sin embargo el ciclo while y en efecto el do-
while nos permite ejecutar cierta acción de forma infinita hasta que se cumpla alguna
condición especifica, en nuestro caso sería que el numero ingresado sea mayor a 100. De
modo que si el usuario nos ingresa de manera sucesiva los siguientes numero 1,50,99, 49,
21, 30, 100 ..., nuestro programa no finalizara, pues ninguno de estos números es mayor
que 100, sin embargo si nos ingresara el numero 300, el programa finalizaría
inmediatamente.
Vamos a ver ahora como es la sintaxis de un ciclo do-while en C++, así estaremos listos
para usarlos en nuestros programas de ahora en adelante cada vez que lo necesitemos
Sintaxis del Ciclo Do-While en C++:
La sintaxis de un ciclo do-while es un tanto más larga que la del ciclo while en C++, sin
embargo no se hace más complicado, de hecho con tan solo tener bien clara una condición
de finalización para el ciclo tendremos prácticamente todo terminado.
do
{
....
....
Bloque de Instrucciones....
....
....
}
while(condición de finalización); //por ejemplo numero != 23
Vamos entonces a ver línea por línea el anterior código para comprender todo y quedar
claros. Posteriormente veremos el ejemplo planteado anteriormente y su solución.
Línea 1:
Esta línea es por decirlo así, la parte novedosa del ciclo do-while, esta expresión no evalúa
ninguna condición ni nada, simplemente da paso directo al bloque de instrucción y luego
permite la evaluación de la condición.
Línea 2:
En la línea 2 tenemos una llave abriendo "{" lo cual como sabemos indica que allí
comienza un bloque de instrucciones que se ejecutaran cada vez que el ciclo de un "giro".
Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se ejecutará dentro
de nuestro ciclo la primera línea inmediatamente posterior a la instrucción do, de modo que
si deseamos que se ejecuten varias líneas dentro de nuestro ciclo, debemos usar las llaves.
En lo personal, es preferible poner siempre las llaves sin importar cuantas líneas se vayan a
ejecutar, es una buena práctica de programación y te puede evitar dolores de cabeza
Línea 3 a 7:
En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo de
manera iterativa durante la ejecución del ciclo, este bloque podrá tener la cantidad de líneas
necesarias incluso, como veremos más adelante dentro de estas podría haber uno o más
ciclos, así que podrías tener todo un programa dentro de un ciclo.
Línea 8:
En esta última línea hacemos uso de la llave cerrando "}", una vez más como seguramente
ya debemos saber esta nos indica que allí termina el bloque de instrucciones que se
ejecutarán de manera cíclica y se dará por terminada la ejecución de este para continuar
ejecutando el resto del programa.
Línea 9:
La línea 9 en el ciclo do-while, tiene la misma importancia y función que l alinea 1 en la
sección del ciclo while, cabe resaltar que simplemente evalúa la condición y define si se
cumple o no para seguir con la ejecución del ciclo o con la del resto del algoritmo, de este
modo podemos ver que el ciclo while y el do-while son muy similares, con la pequeña
diferencia en que en uno se evalúa la condición desde el principio y en la otra al final de
cada ciclo.
Ejemplos de Ciclo Do-While en C++
A continuación vamos a ver unos cuantos ejemplos para comprender de manera adecuada
el uso de los ciclos while en c++, recuerda que si no comprendes alguno de estos ejemplos
o tienes alguna pregunta o sugerencia sobre estos o cualquier contenido de la sección,
puedes dejarlas en la sección de comentarios.
Ejemplo 1: Pedir números por pantalla hasta que alguno sea mayor a 100
Vamos a retomar el ejemplo anterior, donde queremos hacer que nuestro programa le pida a
un usuario una serie de números cualquiera y que solo dejaremos de hacerlo cuando el
usuario ingrese un número mayor a 100, una vez mas es un ejemplo sencillo con el que nos
aseguraremos de haber comprendido bien todos los conceptos anteriores, vamos a ver cómo
hacer lo mismo con dos tipos de ciclos diferentes (el while y el do-while), sin embargo
vamos a ver como con uno es más eficiente que con el otro:
Solución Ejemplo 1:
Para solucionar esto, debemos tener clara cuál va a ser la condición que se debe cumplir
para que el ciclo este pidiendo el numero constantemente. El ciclo se va a detener solo
cuando el numero ingresado sea mayor que 100, así que la condición para que se siga
ejecutando es que el numero sea menor a 100, ¿Comprender la lógica?, es simple si para
que se detenga el numero debe ser mayor a 100, entonces para seguirse ejecutando el
numero debe ser menor o igual a 100, veámoslo entonces
int numero;
do
{
cout << "Ingrese un numero ";
cin >> numero;
}
while(numero <= 100);
El código funcional completo y un tanto más amigable para el usuario sería el siguiente:
#include "iostream"
#include "iostream"
#include "iostream"
system("PAUSE");
return 0;
}
En este caso, vemos que, por supuesto, con el ciclo while también podemos conseguir lo
mismo, PERO modificando algunas cosas con relación a la opción. En general, el mayor
aspecto negativo de usar un while en este caso, en lugar de un do-while, es que ya hemos
evaluado la opción sin siquiera habérsela solicitado al usuario por primera vez, lo cual nos
obliga a darle un valor inicial a la variable "opcion" (un -1), para asegurarnos de que el
ciclo se ejecute al menos una vez y el usuario tenga la opción de ver el menú e ingresar la
acción que desea ejecutar.
Muy bien, con eso deberíamos tener un caso claro en el que es mejor usar un do-while que
un while en C++. Veamos ahora algunas conclusiones.
Conclusiones sobre el ciclo do-while en C++
En efecto, los ciclos do-while son bastante útiles. Sin embargo, como con cualquier ciclo
desde el punto de vista de la eficiencia al igual que con los ciclos for, es recomendable
evitarlos en la medida de lo posible, siempre que vayas a usar un ciclo do-while o cualquier
tipo de ciclo en realidad, deberías preguntarte primero si es totalmente necesario o si existe
una manera más efectiva de hacerlo. Evidentemente habrá situaciones en las que será casi
que imprescindible usar el ciclo, pues por algo existen, está entonces en nuestra habilidad
determinar cuándo usarlos y mejor aun como usarlos de manera efectiva.
Finalmente, tener claro, tal como se mostró en este artículo, cuándo usar un do-while en
lugar de cualquier otro ciclo de C++.