(C++) Instrucción de bucle con condición - while


Un bucle con una condición. declaración while
Al estudiar el bucle for, dijimos que si se conoce el número de repeticiones de cualquier acción, entonces puede acortar el programa usando el operador de bucle for. Pero, ¿y si se desconoce el número de repeticiones? Y esto sucede muy a menudo.
 
Ejemplo
Recordando la traducción de un número de un sistema numérico decimal a cualquier otro, necesitamos dividir el número (y luego el resultado de la división) por la base del sistema numérico hasta que obtengamos cero en la respuesta. Se desconoce cuántas veces compartiremos. Y hay bastantes programas que implementan dicho algoritmo. 

¿Cómo podemos implementar el algoritmo si no sabemos el número exacto de iteraciones?

Para tales casos en la programación, existe una instrucción de bucle con una condición. 
En el lenguaje de programación Python, una declaración de bucle condicional comienza con la palabra while y tiene la siguiente estructura.
while (<condición>) 
{
  cuerpo de bucle
}

Como ya sabemos:
- condición es una expresión que puede evaluarse como verdadera o falsa (como en una declaración condicional);
- cuerpo del bucle son comandos para repetir, están sangrados.

¿Cómo funciona el operador?
1. Primero, el programa evalúa la condición entre paréntesis después de la palabra while. Si la condición se cumple (verdadera), entonces el programa ejecuta las instrucciones contenidas en el cuerpo del ciclo.
2. Una vez completada la ejecución del cuerpo del bucle, el programa vuelve a comprobar la condición y la vuelve a comprobar.
3. Estas acciones (comprobar la condición - ejecutar el cuerpo del bucle) se repiten hasta que la condición se vuelve falsa.
4. Si la condición no se cumple inmediatamente (falso) durante la primera ejecución de esta instrucción, el programa nunca ejecutará el cuerpo del bucle.

Al analizar el trabajo de este operador, debería quedar claro que el cuerpo del ciclo debe contener un operador que afecte la condición.
Por ejemplo, en un ciclo, el valor de una variable utilizada en una condición puede incrementarse.

Un ejemplo de un programa que llamaremos "Conteo silencioso".
Hagamos que el programa cuente en lugar de nosotros, por ejemplo, hasta 10.
El programa debe generar las frases "Start" y "Finalizar", y entre estas acciones se muestran los números que se están calculando.

Por ejemplo, así:
Inicio
1 2 3 4 5 6 7 8 9 10
Terminar

Un programa que usa un bucle while se vería así: #incluir<iostream> utilizando el espacio de nombres estándar; principal() { ent yo; cout << "Inicio\n"; yo = 1; mientras(i <= 10) { cout << yo << " "; yo++; // Operador que afecta el cambio de la variable en la condición } cout << "\nFinalizar"; }
En este programa, asignamos un valor a la variable i = 1 - el punto de partida.
Además, siempre que tengamos el valor de la variable i no mayor (es decir, menor o igual que) el valor que necesitamos, nosotros: 
1. mostrar el valor de la variable i;
2. aumente el valor de la variable i en 1: este operador afecta el valor de la condición entre paréntesis. La variable i se incrementa, lo que significa que en algún momento la condición i <= 10 se volverá falsa. Esto sucederá cuando i sea igual a 11. En este caso, el cuerpo del ciclo ya no se ejecutará y el programa ejecutará la siguiente declaración después del ciclo, es decir, cout << "\nFinalizar"
.

Tarea
Debe ingresar un número (que sea menor a 3,000,000) y determinar el número de dígitos en él.
 
Idea de solución
Solo necesitamos cortar secuencialmente el último dígito del número (esto se puede hacer reduciendo el número 10 veces, usando la división de enteros por 10), y cada vez que necesitamos aumentar el contador. 

Como resultado, después de cortar todos los dígitos del número, obtendremos su número en el contador.

Este algoritmo se puede formular de la siguiente manera:
Hasta que el número sea cero, disminúyalo en 10 e incremente el contador en 1 cada vez.
 
El programa se verá así. #incluir<iostream> utilizando el espacio de nombres estándar; principal() { intn, cuenta; cin>> norte; cuenta = 0; mientras (n != 0) { contar++; n = n/10; } cout << "Número-" << n<< " contiene " << contar << " dígitos";   } Necesitas saber este programa de memoria, porque. sobre esta base, se resuelven muchos otros problemas relacionados con el cálculo de números por dígitos.

número (n) contador
123 0
12 1
1 2
0 3

Tarea

La entrada del programa es el flujo de datos — una secuencia de números enteros que termina en cero (el cero no está incluido en la secuencia). Necesita encontrar la suma de los elementos de esta secuencia.
 
Algoritmo de resolución
suma=0 entrada x // ingrese el primer número while x != 0 // el signo final de entrada se establece en la condición,  nc // es decir, hasta que ingrese cero    sum = sum + x // puedes hacer algo con el número original. // Puede agregar una verificación de número para alguna condición, etc.    ingrese x // ingrese el siguiente número nudos imprimir suma //resultado de salida