No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

5D
12H
21M
17S
Curso de C++ B谩sico

Curso de C++ B谩sico

Diana Mart铆nez

Diana Mart铆nez

Ciclos while y do-while

15/18
Recursos

Aportes 19

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Un dato interesante es que se puede tener un while(true) usando for, como se ve aca:

#include<iostream>

using namespace std;

int main() {
    for(;;) {
        cout << "Deseas terminar?\n";
        char respuesta;
        cin >> respuesta;
        if (respuesta == 'y') {
            cout << "Bye bye\n";
            break;
        }
    }
}

Tambien en lugar de usar endl, al final de la cadena pueden anadir \n ejemplo: 鈥淢i texto\n鈥

Me hubiera gustado un reto sinceramente

Creo que es mejor as铆 el do-while:

do {
<<codigo>>
} while (respuesta != 鈥榶鈥);

Diria que usar el while(true) y romper la ejecucion con un break es una mala practica. Lo recomendable seria hacer la comprobaci贸n de la respuesta en la condicion, por ejemplo.

char respuesta
while(respuesta != 'y'){
	cout << "Deseas terminar?" << endl;
	cin >> respuesta;
	if(respuesta == 'y'){
		cout << "bye bye";
	}
}	

Aunque a modo de explicaci贸n esta bien

Para quienes deseen poner en practica los conocimientos del ciclo while y do-while, en este link podr谩n encontrar diferentes retos a realizas:
https://platzi.com/comunidad/retos-de-programacion-en-cualquier-lenguaje-sexto-nivel-ciclo-while-2/

Hice este c贸digo que se ejecuta por la eternidad hasta que el usuario quiera salir, no importa si usa may煤sculas o min煤sculas.

    char respuesta;
    for(;;){
        cout << "驴Deseas terminar?[Y/N]: ";
        cin >> respuesta;
        if (respuesta == 'Y' || respuesta == 'y'){
            cout << "Bye bye \n";
            break;
        }else if(respuesta == 'N' || respuesta == 'n'){
            cout << "Continuamos \n";
        }else{
            cout << "Respuesta inv谩lida \n";
        }
    }

Mi codigo usando while
Un while siempre se va a ejecutar hasta que sea verdadero

#include <iostream>
using namespace std;

int main() {
    //this is a comment haha
   while(true){
       char respuesta;

       cout << "Deseas terminar?" << endl;
       cin >> respuesta;

       if(respuesta == 'y'){
           cout << "bye bye";
           break;
       }
   }
    return 0;
}

Es mas un comentario que un aporte. Que genial usar dentro del While un true como booleano nunca se me hab铆a ocurrido. Conoc铆a el while pero siempre usando una condici贸n que comparaba valores num茅ricas.
Buena Clase! Saludos!

Hola amigos, aqu铆 muestro mi versi贸n optimizada:
#include <iostream>
using namespace std;
int main() {
char respuesta=鈥榥鈥;
while (respuesta != 鈥榶鈥 && respuesta != 鈥榊鈥) {
cout << "Desea continuar ? ";
cin >> respuesta;
}
}

Ciclos while y do-while

Los ciclos while y do-while se diferencias del ciclo for en que solo se evalua una condici贸n la cual puede ser iterada indefinidamente.

Ejemplo de while para mantener ciclo:

#include <iostream>
using namespace std;

int main(){
    
    while (true)
    {
        char respuesta;
        cout << "Desea terminar?" << endl;
        cin >> respuesta;

        if (respuesta == 'y'){
            cout << "bye bye";
            break;
        }
    }
    
}

En este caso creamos un bucle infinito, el cual se termina solo si la variable respuesta vale 鈥榶鈥.

El ciclo do-while se diferencia del ciclo while de que este ejecuta minimo una vez el bloque de codigo y despues evalua la condici贸n.

Ejemplo del ejercicio anterior pero con do while:

#include <iostream>
using namespace std;

int main()
{
    do
    {
        char respuesta;
        cout << "Desea terminar?" << endl;
        cin >> respuesta;

        if (respuesta == 'y')
        {
            cout << "bye bye";
            break;
        }
    } while (true);
}

Notas de la clase:https://towering-lancer-935.notion.site/Ciclos-while-y-do-while-caa992c2e3a2485997798e7aa8e47f89
Codigo de la clase:

#include <iostream>
using namespace std;

int main(){
    do{
        char respuesta;
        cout<<"Deseas terminar?"<<endl;
        cin >> respuesta;
        if(respuesta == 'y'){
            cout <<"Bye bye"<<endl;
            break;
        }
    } while(true);
}```

Aqu铆 est谩 el c贸digo usado en clase:

#include <iostream>

using namespace std;

int main() {
    do {
        char response;
        cout << "Deseas terminar?" << endl;
        cin >> response;
        if (response == 'y') {
            cout << "bye bye";
            break;
        }
    } while (true);
}

馃槃

Resulta un tanto complicado sentir seguridad del contenido cuando la misma profesora duda de lo que menciona (el ejemplo de crear una variable char vac铆a es claro) y se nota inc贸moda. Recomendar铆a estructurar mejor las clases y agregar retos.

Otra opci贸n para tener un while con un for pude ser as铆;

#include <iostream>

using namespace std; 

int main(){
// ingreso de datos 
    char data;
    cout << "Ingresa \"y \"para inicial el programa o \" n \" para saltar el programa: " << endl;
    cin >> data;
    int i = 0;
    for(char j = 'y'; j == data || data != 'n';){
        cout << "ingresa \" n \" para terminar" << endl;
        cin >> data;
    }
    cout << "bye saliste del programa" << endl;

    
}

Reto

Crear un programa que permita obtener el n-茅simo elemento de la serie de fibonacci

Por ejemplo, para n = 8 el programa deber铆a devolver 13

En el caso de usar solamente while, primero se verifica la condicion para entrar al ciclo

#include<iostream>

using namespace std;

int main ()
{
    for(int i = 0; i < 10; i++)
    {
        cout << i << endl;
        while (i < 5) //primero se verifica la condicion para entrar al ciclo
        {
        i += 1;
        cout << "Aqui se ejecuta el proceso while" << endl;
        }
        
    }
}
"Resultados:"
0 // se imprime la variable
Aqui se ejecuta el proceso while //while verifica la condicion para entrar al ciclo, confirmando que es verdadera
Aqui se ejecuta el proceso while
Aqui se ejecuta el proceso while
Aqui se ejecuta el proceso while
Aqui se ejecuta el proceso while // en este punto "i" vale 5 por lo que while verifica que ya no se cumple la condicion y sale del ciclo 
6
7
8
9

Y con Do while primero se ejecuta el ciclo antes de verificar la condicion para entrar en el

#include<iostream>

using namespace std;

int main ()
{
    for(int i = 0; i < 10; i++)
    {
        cout << i << endl;
        do // primero se ejecuta el codigo y despues se verifica la condicion 
        {
        i += 1;
        cout << "Aqui se ejecuta el proceso Do" << endl;
        } 
        while(i < 5); // Aqui se verifica si se debe continuar con el ciclo            
    }

}
"Resultados:"
0 // se imprime la variable 
Aqui se ejecuta el proceso do //do ejecuta el ciclo
Aqui se ejecuta el proceso do
Aqui se ejecuta el proceso do
Aqui se ejecuta el proceso do
Aqui se ejecuta el proceso do // en este punto "i" vale 5 por lo que while confirma que se debe salir del ciclo
6
Aqui se ejecuta el proceso do //do no verifica la condicion para entrar en el ciclo, por lo que se ejecuta el codigo, en este punto "i" vale 7. While confirma de nuevo que se debe salir del ciclo
8
Aqui se ejecuta el proceso do // Al no verificar en primer lugar la condicion para entrar al ciclo, estara entrando y saliendo una y otra vez (en este caso)

Los ciclos (o bucles) while y do while:

#include<iostream>
using namespace std;

int main(){
    int limite = 0;
    int contador = 0;
    bool ciclo = true;
    cout<< endl;

    while (ciclo)
    {
        cout<< "驴Que siga el ciclo While? (1 = No, 0 = Si)";
        cin>> limite;

        contador +=1;
        cout<< contador <<endl;

        if(limite == 0){
            break;
        }
    }

    contador = 0;
    do
    {
        cout<< "驴Que siga el ciclo Do While? (1 = No, 0 = Si)";
        cin>> limite;

        contador +=1;
        cout<< contador <<endl;

        if(limite == 0){
            ciclo = false;
        }
    } while (ciclo);
}

Este en mi codigo

#include <iostream>
using namespace std;

int main() {
    //this is a comment haha
   for(int i = 0; i < 10000; i++){
       char respuesta;

       cout << "Deseas terminar?" << endl;
       cin >> respuesta;

       if(respuesta == 'y'){
           cout << "bye bye";
           break;
       }
   }
    return 0;
}

Les dejo el c贸digo:

#include <iostream>

using namespace std;

int main() {
  do {
    char response;
    cout << "Do you wanna leave the program? " << endl;
    cin >> response;

    if (response == 'y') {
      cout << "Bye" << endl;
      break;
    }
  } while (true);
}