Instruction de boucle avec condition - while


Une boucle avec une condition. Instruction while
En étudiant la boucle for, nous avons dit que si le nombre de répétitions de n'importe quelle action est connu, alors vous pouvez raccourcir le programme en utilisant l'opérateur de boucle for. Mais que se passe-t-il si le nombre de répétitions est inconnu ? Et cela arrive assez souvent.
 
Exemple
En se souvenant de la traduction d'un nombre d'un système de nombres décimaux à un autre, nous devons diviser le nombre (puis le résultat de la division) par la base du système de nombres jusqu'à ce que nous obtenions zéro dans la réponse. Combien de fois nous partagerons est inconnu. Et il existe de nombreux programmes qui implémentent un tel algorithme. 

Comment pouvons-nous implémenter l'algorithme si nous ne connaissons pas le nombre exact d'itérations ?

Pour de tels cas en programmation, il existe une instruction de boucle avec une condition. 
Dans le langage de programmation Python, une instruction de boucle conditionnelle commence par le mot while et a la structure suivante.
while (<condition>) 
{
  corps de boucle
}

Comme nous le savons déjà :
- condition est une expression qui peut être évaluée comme vraie ou fausse (comme dans une instruction conditionnelle) ;
- Les corps de la boucle sont des commandes à répéter, elles sont indentées.

Comment fonctionne l'opérateur ?
1. Tout d'abord, le programme évalue la condition entre parenthèses après le mot while. Si la condition est remplie (true), alors le programme exécute la ou les instructions contenues dans le corps de la boucle.
2. Une fois l'exécution du corps de la boucle terminée, le programme revient pour vérifier la condition et la vérifie à nouveau.
3. Ces actions (vérification de la condition - exécution du corps de la boucle) sont répétées jusqu'à ce que la condition devienne fausse.
4. Si la condition n'est pas immédiatement remplie (faux) lors de la première exécution de cette instruction, alors le programme n'exécutera jamais le corps de la boucle.

En analysant le travail de cet opérateur, il devrait devenir clair que le corps de la boucle doit contenir un opérateur qui affecte la condition.
Par exemple, dans une boucle, la valeur d'une variable utilisée dans une condition peut être incrémentée.

Un exemple de programme que nous appellerons "Silent count".
Faisons en sorte que le programme compte à notre place, par exemple, jusqu'à 10.
Le programme doit afficher les phrases "Start" et "Terminer", et entre ces actions afficher les nombres en cours de calcul.

Par exemple, comme ceci :
Commencer
1 2 3 4 5 6 7 8 9 10
Terminer

Un programme utilisant une boucle while ressemblerait à ceci : utiliser le système ; programme de classe {     vide statique Principal() {         Console.WriteLine("Démarrer");         int je = 1 ;         tandis que (je <= 10) {             Console.WriteLine(i);             je++ ;         }         Console.WriteLine("Terminer");     } } Dans ce programme, nous attribuons une valeur à la variable i = 1 - le point de départ.
De plus, tant que la valeur de la variable i n'est pas supérieure (c'est-à-dire inférieure ou égale) à la valeur dont nous avons besoin, nous :
 1) afficher la valeur de la variable i;
 2) augmenter la valeur de la variable i  de 1 - cet opérateur affecte la valeur de la condition entre parenthèses. La variable i  est incrémentée, ce qui signifie qu'à un moment donné la condition i <= 10 deviendra fausse. Cela se produira lorsque i est égal à 11. Dans ce cas, le corps de la boucle ne sera plus exécuté et le programme exécutera l'instruction suivante après la boucle, c'est-à-dire  Console.WriteLine("Finish").

Essayons d'écrire un programme pour résoudre le problème suivant : vous devez entrer un nombre et déterminer le nombre de chiffres qu'il contient.

Idée de solution.
Nous avons juste besoin de couper séquentiellement le dernier chiffre du nombre (cela peut être fait en réduisant le nombre de 10 fois, en utilisant une division entière par 10), et à chaque fois nous devons augmenter le compteur. 
En conséquence, après avoir coupé tous les numéros, le compteur stockera le nombre de chiffres dans le numéro.
D'une autre manière, l'algorithme peut être formulé comme suit : tant que le nombre n'est pas égal à zéro, diminuez-le de 10 fois et augmentez le compteur de 1.
nombre (n) compteur
123 0
12 1
1 2
0 3
Le programme ressemblera à ceci : ... vide statique Main() { int n = Convert.ToInt32(Console.ReadLine()); nombre entier = 0 ; tandis que (n != 0) { compter++ ; n=n/10 ; } } Vous devez bien connaître et comprendre ce programme, car de nombreuses autres tâches liées au calcul par chiffres de un nombre.

Tâche

L'entrée du programme est le flux de données — une séquence d'entiers qui se termine par zéro (zéro n'est pas inclus dans la séquence). Vous devez trouver la somme des éléments de cette séquence.
 
Algorithme de résolution
somme=0 entrée x // entrer le premier nombre tandis que x != 0 // le signe de fin d'entrée est défini dans la condition,  nc // c'est-à-dire jusqu'à ce que vous saisissiez zéro    somme = somme + x // vous pouvez faire quelque chose avec le nombre d'origine. // Vous pouvez ajouter une vérification numérique pour certaines conditions, etc.    input x // entrez le nombre suivant kts imprimer la somme // sortie du résultat