Sei sulla pagina 1di 31

Condicional if en C++.

Declaración, uso y sintaxis del if en C++

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.

Sintaxis del Condicional If en C++:


La sintaxis de un condicional if, es bastante simple e incluso creo que intuitiva. Vamos
entonces a ver rápidamente como es la estructura para ir luego a unos ejemplos y quedar
bien claros. Veamos:

if(condición a evaluar) //Por ejemplo X <= 10


{
....
....
Bloque de Instrucciones si se cumple la condición....
....
....
}
....
Bloque de Instrucciones restante DEL ALGORITMO....
....
Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros.
Posteriormente veremos un ejemplo con valores reales.
Línea 1:
En esta línea está prácticamente todo lo esencial del condicional, aquí le hemos dicho al
interior del argumento del condicional if, cual es la condición que se debe cumplir para que
se ejecute el primer bloque de instrucciones, esta línea es en efecto esencial ya que nos da
la pauta para que el algoritmo determine si ejecutará o no el bloque de instrucciones al
interior de las llaves.
Línea 2:
En la línea 2 tenemos una llave abriendo "{" lo cual como seguramente ya sabrás indica
que allí comienza el bloque de instrucciones que se ejecutarán si se cumple la condición
dada. 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 declaración del
condicional, de modo que, si deseamos que se ejecuten varias líneas dentro de nuestro
condicional, debemos usar las llaves
Línea 3 a 7:
En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo en caso
de cumplirse la condición, 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 condicionales en su
interior, así que podrías tener lo que se conoce como condicionales anidados (ya veremos
eso más adelante).
Línea 8:
En esta línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya
sabrás esta nos indica que allí termina el bloque del condicional y se dará por terminada la
ejecución de este para continuar ejecutando el resto del programa.
Línea 9 a 11
Estas líneas contienen la estructura restante del programa, se verifica si la condición se
cumple o no, el algoritmo siempre va a ejecutar estas líneas, es decir las líneas que se
encuentran después de la llave de cierre de un condicional, siempre se ejecutarán sin
importar si la condición se cumpla o no.

Ejemplos de Condicional If-else en C++


A continuación, vamos a ver unos cuantos ejemplos para comprender de manera adecuada
el uso de los condicionales if en c++.
Ejemplo 1: Verificación de valores en C++
Un ejemplo diseñamos un sistema, en el cual un usuario nos ingresa el resultado de una
suma mostrada en pantalla y verificábamos si el resultado ingresado era el correcto a esta
operación. EN caso de ser correcto, el sistema muestra un mensaje de felicitación.
Solución Ejemplo 1:
Debemos entonces determinar cuál va a ser nuestra condición a evaluar, en este ejemplo, la
condición debe ser que la respuesta ingresada, sea igual al resultado de la suma, veamos
entonces como realizar esto:

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:

if(condición a evaluar) //Por ejemplo 50 <= 10


{
....
....
Bloque de Instrucciones si se cumple la condición....
....
....
}
else
{
....
....
Bloque de Instrucciones si NO se cumple la condición....
....
....
}
Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros.
Posteriormente veremos un ejemplo con valores reales.
Línea 1:
En esta línea está prácticamente todo lo esencial del condicional, aquí le hemos dicho al
interior del argumento del condicional if, cual es la condición que se debe cumplir para que
se ejecute el primer bloque de instrucciones, esta línea es en efecto esencial ya que nos da
la pauta para que el programa determine que bloque de instrucciones ejecutar.
Línea 2:
En la línea 2 tenemos una llave abriendo "{" lo cual como seguramente ya sabrás indica
que allí comienza el bloque de instrucciones que se ejecutarán si se cumple la condición
dada. Esta llave no es del todo obligatoria, sin embargo si no la ponemos solo se ejecutará
dentro de nuestro condicional la primera línea inmediatamente posterior a la declaración del
condicional, de modo que si deseamos que se ejecuten varias líneas dentro de nuestro
condicional, debemos usar las llaves
Línea 3 a 7:
En estas líneas es donde estarán todas las operaciones que queramos llevar a cabo en caso
de cumplirse la condición, 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 condicionales en su
interior.
Línea 8:
En esta última línea hacemos uso de la llave cerrando "}", una vez más como seguramente
ya sabrás esta nos indica que allí termina el bloque del condicional y se dará por terminada
la ejecución de este para continuar ejecutando el resto del programa, cabe notar que esta
línea dará paso a la ejecución del bloque de instrucciones del else, en caso de que la
condición dada no se haya cumplido.
Línea 9 a 16
Estas líneas contienen la estructura else, que es la que indica que existe un bloque de
instrucciones que se debe ejecutar en caso de que la condición dada no se cumpla. Este
bloque al igual que el del condicional if, se abre y se cierra con llaves, recuerda que estas
pueden ser opcionales, sin embargo siempre recomiendo usarlas como una buena práctica
de programación.
Ejemplos de Condicional If-else en C++
A continuación vamos a ver unos cuantos ejemplos para comprender de manera adecuada
el uso de los condicionales if-else en c++.
Ejemplo 1: Sistema de logeo en C++
Vamos a retomar el ejemplo anterior, deseamos implementar un sistema de ingreso de
usuario, es decir, queremos que el usuario nos ingrese una contraseña y deseamos
comprobar si coincide con el valor pre establecido. En caso de que los datos sean correctos
se mostrará un mensaje de bienvenida, y en caso de que no, se mostrara un mensaje de error
y finalizará el programa.
Solución Ejemplo 1:
Debemos entonces determinar cuál va a ser nuestra condición a evaluar, en este ejemplo, la
condición debe ser que la contraseña, sea idéntica a la establecida en nuestro sistema,
veamos entonces como realizar esto:

string password = "";


cout << "Ingrese la contrasenia: ";
cin >> password;
if(password == "myClave")
{
cout << "Contrasenia correcta. Bienvenido";
}
else
{
cout << "Contrasenia incorrecta.";
}
El código funcional completo sería el siguiente:

#include "iostream"
#include "string"
#include "stdlib.h"

using namespace std;

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.

switch(opción) //donde opción es la variable a comparar


{
case valor1: //Bloque de instrucciones 1;
break;
case valor2: //Bloque de instrucciones 2;
break;
case valor3: //Bloque de instrucciones 3;
break;
//Nótese que valor 1 2 y 3 son los valores que puede tomar la opción
//la instrucción break es necesaria, para no ejecutar todos los casos.
default: //Bloque de instrucciones por defecto;
//default, es el bloque que se ejecuta en caso de que no se de ningún caso
}
Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros.
Posteriormente veremos un ejemplo con valores reales.
Línea 1:
Aquí, tenemos la declaración del condicional switch, estamos diciendo que lo que viene a
continuación es esto, entre los paréntesis, el switch recibe la variable que vamos a usar para
comparar en cada uno de los casos.
Línea 2:
En la línea 2 tenemos una llave abriendo "{" lo cual como hemos visto en secciones
anteriores, indica que allí comienzan los bloques de instrucciones que se ejecutarán para
cada caso.
Línea 3:
En esta línea tenemos una parte vital del condicional switch, aquí tenemos definido un caso
posible que puede cumplir nuestra variable, la sintaxis es simple, usamos la instrucción
"case" para indicar que allí comienza un caso, luego indicamos el valor que puede tomar la
variable, puede ser un numero, una cadena de caracteres o lo que necesitemos, de esto se
siguen dos puntos ":" y después de estos ponemos la o las instrucciones a ejecutar para este
caso, como ejemplo, podríamos tener algo como esto : case "Hola": cout << "Usted ha
escrito Hola";.
Línea 4:
Esta línea contiene la instrucción break, es una instrucción simple, pero fundamental al
interior del condicional Switch, esta instrucción indica que hasta allí va el bloque de
instrucciones del caso inmediatamente anterior a este, de este modo evitamos que el
programa ejecute los demás casos, a modo de ejercicio, podrías intentar ejecutar el código
del ejemplo que veremos más adelante y quitar las instrucciones break, con esto podrás
comprobar que si el usuario ingresa por ejemplo un 1, se ejecutarán todos los casos, es por
esto que el break es fundamental.
Línea 5 a 8
Estas líneas contienen una repetición de las instrucciones de las líneas 3 y 4, evidentemente
cada una contiene un caso distinto, ten en cuenta que se pueden definir todos los casos que
sean necesarios al interior del switch.
Líneas 9, 10 y 12
Estas líneas como deberías saber ya, contienen diferentes comentarios aclarativos sobre el
código.
Línea 11
Esta línea cambia un poco con respecto a las anteriores, sin embargo conserva la misma
esencia, no se usa el comando "case", usamos el comando "default", y luego los 2 puntos
":", notemos que no se pone ningún valor a evaluar, pues esta es la acción que se ejecuta en
caso de que no lleguemos a entrar en ninguno de los casos.
Línea 13:
En esta línea hacemos uso de la llave cerrando "}", una vez más como seguramente ya sabe
esta nos indica que allí termina el bloque del condicional y se dará por terminada la
ejecución de este para continuar ejecutando el resto del programa.
Ejemplos de Condicional Switch en C++
A continuación vamos a ver unos cuantos ejemplos para comprender de manera adecuada
el uso de los condicionales Switch en C++.
Ejemplo 1: Menú de opciones en C++
Vamos a retomar el ejemplo mencionado anteriormente al inicio de la sección, en el cual
suponíamos que el usuario nos ingresaba un número correspondiente a una opción
cualquiera y de acuerdo a esto mostramos un mensaje y en caso de ingresar una opción
incorrecta, mostramos un mensaje de error.
Solución Ejemplo 1:
Primero, determinemos los casos a ejecutar, tenemos tres casos posibles (suponiendo que
nuestro menú está compuesto por 3 opciones) el caso 1 para la opción 1, el dos para la 2 y
así sucesivamente. Nuestro caso por defecto (default) sería el caso de error, que sucede
cuando no se ingresa alguna de las 3 opciones. Veamos entonces como hacer esto:

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";
}
El código funcional completo sería el siguiente:

# include "iostream"

using namespace std;

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;
}

Ejemplo 2: Menú de opciones en C++, usando char


Vamos a retomar el ejemplo anterior, pero en esta ocasión vamos a usar caracteres (char) de
C++, para determinar las opciones ingresadas por el usuario.
Solución Ejemplo 2, usando char:
Veamos entonces como hacer esto:
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";
}
El código funcional completo sería el siguiente:

# include "iostream"

using namespace std;

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 = valor inicial; i <= valor final; i = i + paso)


{
....
....
Bloque de Instrucciones....
....
....
}
Vamos ahora a ver línea por línea el anterior código para comprender todo y quedar claros.
Posteriormente veremos un ejemplo con valores reales.
Línea 1:
En esta línea está prácticamente todo lo esencial de un ciclo for. La sintaxis es simple,
tenemos una variable de control llamada i que es tipo entero (int), cabe notar que la variable
se puede llamar como nosotros lo deseemos y puede ser del tipo de queramos también, sin
embargo en la mayoría de los casos se usa la "i" como nombre y el entero como tipo, pero
somos libres de modificar esto a nuestro gusto. Esta variable "i" se le asigna un valor inicial
que puede ser cualquier número correspondiente al tipo de dato asignado. Posteriormente lo
que haremos será especificar hasta donde irá nuestro ciclo por medio del valor final, ten en
cuenta que cada uno de estos componentes es separado por un punto y coma ";", también es
importante saber que la condición final puede ser cualquier cosa, mayor, menor, mayor o
igual, menor o igual, sin embargo no tiene sentido que la condición sea por ejemplo un
igual, pues nuestra variable de control siempre va a cambiar entre valores, menores o
mayores que el valor final deseado, si fuera un igual no tendríamos un error de sintaxis,
pero nuestro for básicamente no haría nada de nada. Finalmente el ultimo componente de
esta primer línea es el tamaño del paso, este componente se especifica aumentando en la
cantidad deseada la variable de control.
Línea 2:
En la línea 2 tenemos una llave abriendo "{" lo cual como seguramente ya sabrás indica
que allí comienza el 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 ejecutara
dentro de nuestro ciclo la primera línea inmediatamente posterior a la declaración del ciclo,
de modo que si deseamos que se ejecuten varias líneas dentro de nuestro ciclo, debemos
usar las llaves
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 sabrás esta nos indica que allí termina el bloque del ciclo for y se dará por terminada la
ejecución de este para continuar ejecutando el resto del algoritmo.
Ejemplos de Ciclo For en C++
A continuación vamos a ver unos cuantos ejemplos para comprender de manera adecuada
el uso de los ciclos for en c++.
Ejemplo 1: Mostrar en pantalla los números pares
Vamos a retomar el ejemplo anterior, donde deseábamos sacar los números pares entre el
numero 50 y el 100, es un ejemplo sencillo con el que nos aseguraremos de haber
comprendido bien lo anterior:
Solución Ejemplo 1:
Como se observó anteriormente, tenemos entonces que el valor inicial para nuestro ciclo es
el numero 50 y el valor final es el 100, además, dado que necesitamos los números pares
vamos a ir de dos en dos, así que el tamaño del paso va a ser 2, teniendo estos 3
componentes identificados, estamos listos para crear nuestro ciclo for así:

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"

using namespace std;


int main()
{
for(int i=50;i<=100;i+=2)
{//Notemos que escribir i+=2 es similar a escribir i = i + 2
cout << i << endl;
}
system("PAUSE");
return 0;
}

Ejemplo 2: Cuenta regresiva en un ciclo for


Ahora veremos otro ejemplo sencillo en cual veremos que el ciclo for también puede iterar
disminuyendo el valor del contador, para comprender esto, lo que haremos será imprimir
por pantalla una cuenta regresiva desde el número diez hasta el cero, veamos:
Solución Ejemplo 2:
Para este caso, debido a que queremos ir de un número mayor a uno más pequeño, por lo
tanto para este ejemplo el valor inicial será 10 y el valor final será cero. Adicional, el
tamaño de paso será de 1 negativo, es decir, -1, así:

for(int i=10;i > 0; i--)


{//Notemos que escribir i-- es similar a escribir i = i - 1
cout << i << endl;
}
El código funcional completo sería el siguiente:

#include "iostream"
#include "stdlib.h"

using namespace std;


int main()
{
for(int i=10; i > 0; i--)
{//Notemos que escribir i-- es similar a escribir i = i - 1
cout << i << endl;
}
system("PAUSE");
return 0;
}
Este código del ejemplo dos imprimirá por pantalla la serie numérica 10987654321
Ejemplo 3: Contador con un ciclo for
Para este ejemplo haremos algo un poco más complejo. El ejemplo consiste en contar al
interior de un ciclo for, cuántos números entre el 0 y el 10.000 son múltiplos del 13. Para
ello haremos uso del operador % (modulo) que obtiene el residuo de una división y también
usaremos un pequeño condicional para verificar que el modulo sea cero al dividir por 13.
Solución Ejemplo 3:
Para este caso el valor inicial será 0 y el valor final será 10000. Adicional, el tamaño de
paso será de 1. Al interior del ciclo, en cada iteración verificaremos si el número en el que
estamos es divisible por trece o no y en caso afirmativo aumentaremos el contador en una
unidad así:

int contador = 0; //Iniciamos el contador en cero


for(int i = 0; i < 10000; i++)
{//Notemos que escribir i++ es similar a escribir i = i + 1
if(i%13 == 0) //Si el residuo es cero es múltiplo de 13
{
contador++; //Si es múltiplo aumentamos el contador en 1
}
}
//Mostramos el contador después de verificar todos los números
cout << contador << endl;
El código funcional completo sería el siguiente:
#include "iostream"
#include "stdlib.h"

using namespace std;


int main()
{
int contador = 0; //Iniciamos el contador en cero
for(int i = 0; i < 10000; i++)
{//Notemos que escribir i++ es similar a escribir i = i + 1
if(i%13 == 0) //Si el residuo es cero es múltiplo de 13
{
contador++; //Si es múltiplo aumentamos el contador en 1
}
}
//Mostramos el contador después de verificar todos los números
cout << contador << endl;
system("PAUSE");
return 0;
}
Este ciclo for nos permitirá saber que existen 770 múltiplos del 13 en los números del 0 al
10000.
En efecto los ciclos for, son bastante útiles, sin embargo desde el punto de vista de la
eficiencia, es recomendable evitarlos en la medida de lo posible, siempre que vayas a usar
un ciclo for, 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 for, pues por algo existen. Está entonces en nuestra habilidad
determinar cuándo usarlos y mejor aún cómo usarlos de manera efectiva.
Ciclo while en C++. Estructura y sintaxis. Cómo y para qúe usar un ciclo while en
C++
Los ciclos while son también una estructura cíclica, que nos permite ejecutar una o varias
líneas de código de manera repetitiva sin necesidad de tener un valor inicial e incluso a
veces sin siquiera conocer cuando se va a dar el valor final que esperamos, los ciclos while,
no dependen directamente de valores numéricos, sino de valores booleanos, es decir su
ejecución depende del valor de verdad de una condición dada, verdadera o falso, nada más.
De este modo los ciclos while, son mucho más efectivos para condiciones indeterminadas,
que no conocemos cuando se van a dar a diferencia de los ciclos for, con los cuales se debe
tener claro un principio, un final y un tamaño de paso.
¿Cómo funciona un Ciclo While?
Para comprender mejor el funcionamiento del ciclo while, pongamos un buen ejemplo,
imaginemos 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 vemos, aquí no podríamos utilizar un ciclo for, pues no tenemos ni idea de
cuándo al usuario se le va a ocurrir ingresar un número mayor que 100, es algo
indeterminado para nosotros, sin embargo el ciclo while nos permite ejecutar una 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 while en C++, así estaremos listos para
usarlos en nuestros programas de ahora en adelante cada vez que lo necesitemos
Sintaxis del Ciclo While en C++:
La sintaxis de un ciclo while es incluso más simple y "legible" que la del ciclo for en C++,
pues simplemente requerimos tener clara una condición de parada. En realidad, en la
mayoría de los lenguajes de alto nivel la manera de escribir un ciclo while (la sintaxis) es
incluso muy similar, así que con tan solo tener bien clara una condición de finalización para
el ciclo tendremos prácticamente todo hecho.
while(condición de finalización) //por ejemplo numero == 100
{
....
....
Bloque de Instrucciones....
....
....
}
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:
En esta línea está prácticamente todo lo esencial de un ciclo while. La sintaxis es bastante
simple. Tenemos al interior de los paréntesis una condición cualquiera, es decir por ejemplo
"==. >, <, >=, <=, !=" o algunas mas que se nos puedan ocurrir, esta condición que
especifiquemos allí, es la que permitirá que el ciclo se siga ejecutando hasta que en algún
momento esta misma condición deje de cumplirse, de esta forma si por ejemplo estamos
verificando que un numero_cualquiera == 50, el ciclo se ejecutara solo cuando
numero_cualquiera sea igual a 50, en cuanto su valor cambie a cualquier otro el ciclo while
finalizara y continuara con el resto de la ejecución del programa. De esta forma, es evidente
que la condición que allí ingresemos siempre deberá tomar un valor booleano (true o false).
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 ejecutara dentro
de nuestro ciclo while la primera línea inmediatamente posterior a la declaración del ciclo,
de modo que si deseamos que se ejecuten varias líneas dentro de nuestro ciclo, debemos
usar las llaves
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 del ciclo while y se dará por
terminada la ejecución de este para continuar ejecutando el resto del programa.
Ejemplos de Ciclo 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++.
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:
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 contantemente, 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 número 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;
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"

using namespace std;


int main()
{
int numero;
cout << "Ingrese un numero ";
cin >> numero;
while(numero <= 100)
{
cout << "Ingrese un numero ";
cin >> numero;
}
system("PAUSE");
return 0;
}
En efecto los ciclos while, son bastante útiles, sin embargo 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 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, esta entonces en nuestra habilidad determinar cuándo usarlos y
mejor aun como usarlos de manera efectiva.

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"

using namespace std;


int main()
{
int numero;
do
{
cout << "Ingrese un numero ";
cin >> numero;
}
while(numero <= 100);
system("PAUSE");
return 0;
}
Nota: Como podrás comprobar, ambos códigos hacen lo mismo, haciendo uso del ciclo
while o del ciclo do while, sin embargo con el ciclo do-while, hemos obtenido un beneficio
interesante, primero que todo hemos podido evitar tener que inicializar la variable numero,
segundo también pudimos eliminar las líneas repetidas donde se pedía el numero por fuera
del ciclo y luego al interior del ciclo, aquí lo hicimos solo al interior, pues la condición se
evaluaba mucho más abajo.
Diferencias entre el ciclo do-while en C++ y el ciclo while
Cuando vemos por primera vez el ciclo do-while, se nos viene de inmediato la pregunta de
cuál es la diferencia entre un do-while y un while. Y no quedamos muy seguros de poder
saber cuándo usar uno u otro, así que aquí te explico.
La diferencia es que el do-while, primero ejecuta la acción y luego evalúa la condición,
mientras que el while evalúa la condición antes que cualquier cosa. Esto quiere decir, que el
ciclo while podría no ejecutar ni siquiera una vez lo que tenga en su interior, mientras que
el do-while te asegura que lo que pongas dentro se ejecute mínimo una vez, pues primero
ejecuta y luego evalúa la condición.
Ejemplo de diferencias entre un do-while en C++ y un while
Como siempre, un ejemplo puede ayudarnos mucho más a comprender cuándo usar un do-
while en lugar de un while en C++, así que vamos a implementar el siguiente ejemplo:
Vamos a suponer que queremos mostrar un menú de opciones a un usuario de nuestro
programa y que mientras la opción ingresada no sea cero, entonces no finalizamos el
programa.
Implementando el ejemplo del menú de opciones con un ciclo do-while (el recomendado)

#include "iostream"

using namespace std;


int main()
{
int opcion = 0;
do
{
cout << "Ingrese 1 para mostrar mensaje\n";
cout << "Ingrese 2 para hacer algo más\n";
cout << "Ingrese 0 para salir\n";

cout << "Ingrese una opción a ejecutar\n";


cin >> opcion;
}
//Mostramos el menú hasta que la opción sea cero
while(opcion != 0);
system("PAUSE");
return 0;
}
Como puedes ver y comprobar, es un código sencillo y mientras que el usuario del
programa no ingrese cero en la consola, el programa seguirá mostrando las diferentes
opciones.
Es importante notar que, incluso aunque la variable "opcion" se inició en cero, el ciclo do-
while mostró las opciones sin problemas y no llegó a evaluar su valor, únicamente después
de que el usuario la ingresó. Veamos ahora el mismo ejercicio, pero usando un ciclo while.
Implementando el ejemplo del menú de opciones con un ciclo while (no recomendado)

#include "iostream"

using namespace std;


int main()
{
int opcion = -1;

//Mostramos el menú hasta que la opción sea cero


while(opcion != 0)
{
cout << "Ingrese 1 para mostrar mensaje\n";
cout << "Ingrese 2 para hacer algo más\n";
cout << "Ingrese 0 para salir\n";

cout << "Ingrese una opción a ejecutar\n";


cin >> opcion;
}

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++.

Potrebbero piacerti anche