(Java) Boucles. Boucle avec paramètre (for)


Imaginez une situation où nous devons afficher le même mot à l'écran, disons le mot "BONJOUR", 10 fois. Que devons-nous faire ?
Vous pouvez prendre et écrire la commande 10 fois cout << "BONJOUR";

Mais que se passe-t-il si vous n'avez pas besoin de 10 fois, mais de 20, 30, 40 fois ?, et si 200 fois ? Dans ce cas, la copie prendra beaucoup de temps. Et s'il faut que l'utilisateur choisisse combien de fois afficher les informations à l'écran ? 

Pour faire face à cette tâche, une construction spéciale appelée LOOP
nous aidera
Une boucle est une construction algorithmique dans laquelle une certaine séquence de commandes est répétée plusieurs fois.


Dans le langage de programmation Java, il existe deux types de boucles : une boucle avec une variable (for) et une boucle avec une condition (while et do...while)

Commençons notre connaissance des cycles du premier type.

BOUCLE AVEC UNE VARIABLE OU AVEC UN NOMBRE DE PAS CONNU (POUR)

Il arrive souvent que nous connaissions le nombre de répétitions de certaines actions, ou que nous puissions calculer le nombre de répétitions à l'aide des données que nous connaissons. Certains langages de programmation ont une commande qui en russe ressemble à REPEAT (nombre de fois) - c'est-à-dire que nous pouvons spécifier le nombre exact de répétitions. 

Il est intéressant de voir comment ce cycle fonctionne au niveau de la machine :
1. une certaine cellule de mémoire est allouée en mémoire et le nombre de répétitions y est écrit,
2. lorsque le programme exécute une fois le corps de la boucle, le contenu de cette cellule (compteur) est décrémenté de un.
3. l'exécution de la boucle se termine lorsque cette cellule vaut zéro.

Dans le langage de programmation Java, il n'y a pas une telle construction, mais la construction for.  

La forme générale de l'instruction de boucle for est la suivante : for (/*expression1*/; /*expression2*/; /*expression3*/ ) { /*une instruction ou un bloc d'instructions - corps de la boucle*/; } Cette construction nécessite que nous
1. allouer explicitement une cellule mémoire, qui sera un compteur, et fixer sa valeur initiale
2. une condition a été écrite sous laquelle le corps du cycle sera exécuté
3. indiquez comment la valeur de cette cellule changera.

Dans la partie pratique, nous essaierons d'afficher le mot Hello 10 fois. Dans les tâches suivantes, nous analyserons cette construction plus en détail.

Une boucle for est un moyen de parcourir des actions répétées. Voyons de plus près comment cela fonctionne.

En règle générale, les parties d'une boucle for effectuent les étapes suivantes : 
1. Définition de la valeur initiale. 
2. Exécution d'un test de condition pour continuer la boucle. 
3. Effectuer des actions en boucle. 
4. Mettez à jour la ou les valeurs utilisées dans le test. 
puis les étapes 2 à 4 sont répétées jusqu'à ce que la condition soit remplie. Dès que la condition devient fausse, la boucle se termine et l'instruction suivant l'instruction de la boucle for est exécutée.

Revenons à la forme générale de l'instruction de boucle et analysons plus en détail toutes les parties for (/*expression1*/; /*expression2*/; /*expression3*/ ) { /*une instruction ou un bloc d'instructions - corps de la boucle*/; }

Expression 1

chargé de fixer la valeur initiale de la variable cycle (compteur), se termine par un point-virgule
Par exemple : possibilité 1) i=0 ; //la variable de cycle i est affectée de la valeur initiale égale à zéro. Avec un tel record, //la variable i doit être déclarée avant la boucle option 2) int i=0 ; //la variable i peut être déclarée immédiatement dans l'en-tête du cycle, mais // dans ce cas, après que la boucle sera effacée de la mémoire option 3) ; //pas d'initialisation et de déclaration de la variable cycle du tout, // dans ce cas il peut être déclaré avant la boucle Expression 2 c'est la condition pour continuer la boucle  for, sa véracité est vérifiée. i<=10 // la boucle s'exécutera tant que i est inférieur ou égal à 10. L'état peut être n'importe quoi Expression 3  ; modifie la valeur de la variable compteur. Sans cette valeur, la boucle sera considérée comme infinie i<=10 // la boucle s'exécutera tant que i est inférieur ou égal à 10. L'état peut être n'importe quoi Entraînons-nous à écrire le titre de la boucle for

Une autre caractéristique de l'enregistrement est que s'il n'y a qu'un seul opérateur dans le corps de la boucle, les crochets peuvent être omis.

Il peut y avoir plusieurs déclarations séparées par des virgules dans chaque partie d'en-tête.
Exemples de titres :
pour ( je = 0; je < 10; je ++ ) { ... } //titre standard pour ( je = 0, x = 1.; je < 10; je += 2, x *= 0.1 ){ ... } // dans ce cas, nous utilisons deux variables qui changeront après l'exécution du corps de la boucle - ce sont les variables i et x // la variable i change avec l'étape 2 - i+=2 - raccourci pour i=i+2 // la variable x augmente de 0,1 fois à chaque pas x=x*0,1 - abrégé en x*=0,1

Tous les programmes avec une boucle for que nous avons écrits jusqu'à présent ne peuvent pas être qualifiés d'universels. Parce que nous fixons nous-mêmes le nombre de répétitions du corps de la boucle. 
Mais que se passe-t-il si le nombre de répétitions dépend d'une autre valeur ? Par exemple, l'utilisateur souhaite lui-même définir le nombre de répétitions du cycle.
Que faire dans ce cas ?
Tout est très simple. Au lieu de valeurs numériques de début et de fin, nous pouvons utiliser n'importe quelle variable pouvant être calculée ou définie par l'utilisateur.

Par exemple, nous devons afficher les carrés des nombres de 1 à N, où la valeur de la variable N est saisie au clavier par l'utilisateur.
Le programme ressemblera à ceci :
  #include <iostream> en utilisant l'espace de noms std ; principal() { int je,N ; // je – variable de boucle, N - le nombre maximum pour lequel nous calculons le carré cin>> N; // saisir N ​​depuis le clavier for ( i = 1; i <= N; i ++) // boucle : pour tout i de 1 à N - la variable i prendra séquentiellement des valeurs de 1 à N { cout << "Kvadrat chisla "<<i<<" corbeau " <<i*i<<"\n" ; // Afficher le carré d'un nombre dans un format spécifique et passer à une nouvelle ligne } } Lors de l'entrée dans la boucle, l'instruction i = 1 est exécutée, puis la variable i est incrémentée de un (i ++) à chaque étape. La boucle est exécutée tant que la condition i <= N est vraie. Dans le corps de la boucle, la seule instruction de sortie imprime le nombre lui-même et son carré à l'écran selon le format spécifié.
Pour le carré ou d'autres exposants faibles, il est préférable d'utiliser la multiplication.

Exécutez le programme et voyez le résultat de son travail avec différentes valeurs de la variable N.