[JAVA] Je vais expliquer l'imbrication des déclarations qui tuent les débutants

Vous vous entendez bien avec la phrase «pour»? J'étais dans un combat jusqu'à hier. Je ne savais pas à quoi pensait la phrase «pour», qui courait sans cesse, se répétait sans cesse. Cependant, lorsque j'essayais de résoudre la question JAVA qui a attiré mon attention par essais et erreurs, un rayon de lumière est entré et la phrase `` pour '' a dit:

"Soyons amis".

pour les bases des déclarations

Tout d'abord, passons en revue les bases de l'instruction for. L'instruction for se compose de quatre parties: initialisation, condition, modification et contenu d'exécution </ b>.

De base

for (Initialisation;conditions;changement) {
Contenu d'exécution
}
  • Initialisation
  • C'est ici que vous décidez de la valeur de la variable. Les débutants en programmation ont tendance à penser que l'initialisation sera à 0 lorsqu'ils l'entendent, mais c'est une erreur. Cela signifie en fait quelle valeur commencer. Lorsque l'instruction for est lancée, elle n'est exécutée qu'une seule fois au début </ b>. N'oubliez pas de déclarer le type de la variable
  • Conditions
  • Se termine lorsque cette condition devient «false». En d'autres termes, l'exécution sera répétée tant que les conditions sont remplies </ b>
  • Changement
  • Spécifiez comment les variables écrites dans la condition changent </ b>
  • Contenu d'exécution
  • Ecrire le contenu tel que le calcul et la sortie des caractères

Manifestation

for (int i = 0; i < 10; i++) {
  System.out.println("Hello!");
}
  • int
  • Déclarer le type ʻint`
  • i = 0
  • Remplacez «0» par la variable «i»
  • i < 10
  • Si ʻi est inférieur à 10`, c'est "vrai". En d'autres termes, le contenu de l'exécution est répété jusqu'à ce que «i» soit «9».
  • i++
  • ʻI` est augmenté de un
  • System.out.println("Hello!")
  • Affiche les caractères "Bonjour!"

Mouvement

Voyons cela sur la base de la démonstration. L'initialisation est la première chose qui fonctionne lorsque l'instruction for est lancée. La valeur de la variable «i» est «0». L'instruction «for» confirme que «i» est «0» avant de passer à la condition. La condition est ʻi <10`. À ce stade, c'est la même chose que «0 <10». Une fois traduit en japonais, on peut dire que "0 est inférieur à 10", la condition est donc "true". Puisqu'il a été confirmé que la condition est «vraie», la partie du contenu d'exécution se déplace.

Lorsque System.out.println (" Hello! ") Est exécuté, l'étape suivante est le changement. Le changement est ʻi ++ `. À ce stade, c'est «0 ++», donc c'est «1». Ce «1» se déplace vers la condition à affecter à la variable d'exécution. À ce stade, il est de «1 <10». C'est "vrai". C'est pourquoi je reviendrai sur le contenu de l'exécution.

Si ce flux continue plusieurs fois, la condition sera "10 <10". Est-ce "vrai"? Est-ce «faux»? C'est "faux". Ceci conclut la déclaration «for». Je vous remercie pour votre travail acharné.

Le flux est répertorié ci-dessous.

  1. Démarrez l'instruction for
  2. Initialisation
  3. Conditions
  4. Contenu d'exécution
  5. Changer
  6. Conditions (abrégées ci-dessous)
  7. Fin de l'instruction «for» si la condition est «false»

Nesting pour les déclarations qui était en fait facile

Maintenant que nous avons les bases de l'instruction for, l'étape suivante est l'imbrication. Je pensais avoir compris d'une manière ou d'une autre l'imbrication des déclarations «for», mais quand je l'ai écrite, je ne comprenais pas comment les instructions supérieures «for» et inférieures «for» étaient entrelacées. fait.

Voyons le mouvement d'imbrication tout en démêlant le programme de calcul quatre-vingt-dix-neuf.

Programme pour afficher quatre-vingt-dix-neuf

public class MultiplicationTable {
	public void multiply() {
		for (int x = 1; x < 10; x++) {
			for (int y = 1; y < 10; y++) {
				System.out.print(x * y);
				System.out.print(" ");
			}
				System.out.println();
		}
	}
}

À partir de ce point, l'expression est "externe pour instruction" au lieu de "supérieur" pour instruction ", et" interne "pour instruction" au lieu de "inférieur pour instruction". Puis, à partir de la troisième ligne. Il est exécuté à partir de ʻint x = 1; . Alors x <10;`. Cette fois, c'est "vrai", alors passons au contenu de l'exécution. Si vous êtes un débutant, il sera vide pour voir où se trouve l'exécution, mais veuillez voir la figure ci-dessous.

for文ネスト.png

L'instruction «for» a été agrandie et codée par couleur. Comme vous pouvez le voir, le contenu d'exécution de l'instruction externe «for» est l'instruction «for» interne bleue. La valeur initiale de l'instruction interne for (bleu), ʻint y = 1, est exécutée pour passer à la condition. Puisque «y <10;», remplacez-le et c'est «1 <10». Puisqu'il est «vrai», il passe au contenu de l'exécution. C'est «System.out.print (x * y)». «x» était une variable dans l'instruction externe «for». À ce stade, «x = 1». Donc, ici, «1 * 1» est exécuté et le résultat est «1». «1» s'affiche à l'écran et passe à la ligne suivante. System.out.print (" ")` affiche un blanc demi-largeur.

Une fois cela fait, l'étape suivante consiste à changer. Puisqu'il est «y ++», «y» augmente de un et devient «2», puis la condition continue. Puisqu'il est «y <10», il devient «2 <10» et il est «vrai», donc il revient au contenu de l'exécution. C'est «System.out.print (x * y)». Puisqu'il est «1 * 2», le résultat sera «2» et il sera affiché à l'écran, et le blanc demi-largeur de la ligne suivante sera également affiché, et il sera répété après le passage au changement. Lorsque la valeur de «y» atteint «9» par un tel mouvement, «1 2 3 4 5 6 7 8 9» s'affiche à l'écran. Voyons ce qui se passe après cela.

Avec «y ++», «y» devient «10» et la condition se déplace. Puisque «10 <10» est «faux», «System.out.println ()» au bas de l'instruction interne «for» (bleu) est exécuté pour commencer une nouvelle ligne. Ceci termine l'instruction interne for (bleu) et revient à l'instruction externe for (rouge). A partir de là, c'est répété. Si vous commencez par 2 * 1 et allez à 2 * 9, 3 * 1 sera exécuté avec un saut de ligne. Voyons le résultat réel de l'exécution.

1 2 3 4 5 6 7 8 9 
2 4 6 8 10 12 14 16 18 
3 6 9 12 15 18 21 24 27 
4 8 12 16 20 24 28 32 36 
5 10 15 20 25 30 35 40 45 
6 12 18 24 30 36 42 48 54 
7 14 21 28 35 42 49 56 63 
8 16 24 32 40 48 56 64 72 
9 18 27 36 45 54 63 72 81 

C'est le comportement du programme quatre-vingt-dix-neuf utilisant l'imbrication des instructions «for». C'est facile à démêler. En appliquant cela, j'ai posé une question que j'ai posée au début. Le résultat est là.

■
■■
■■■
■■■■
■■■■■
■■■■■■
■■■■■■■
■■■■■■■■
■■■■■■■■■
■■■■■■■■■■
■■■■■■■■■■
■■■■■■■■■
■■■■■■■■
■■■■■■■
■■■■■■
■■■■■
■■■■
■■■
■■
■

Ce que je fais, c'est utiliser l'instruction for pour augmenter le nombre de par ligne pour exprimer un triangle. J'ai fait une forme qui augmente de un et une forme qui diminue de un, et ai affiché le haut et le bas combinés. Ci-dessous le programme.

public class TriangleTop {
	public void traiangle() {
		for (int x = 0; x < 10; x++) {
			for (int y = 0; y < x+1; y++) {
				System.out.print("■");
			}
				System.out.println();
		}
	}
}
public class TriangleBottom {
	public void traiangleReverse() {
		for (int x = 0; x < 10; x++) {
			for (int y = 10; y > x; y--) {
				System.out.print("■");
			}
				System.out.println();
		}
	}
}

Si vous avez lu jusqu'ici, vous n'avez plus à l'expliquer.

Épilogue

Il est difficile pour les débutants de comprendre immédiatement le comportement de l'imbrication des instructions «for». Il est recommandé de ne pas simplement le regarder, mais d'essayer d'abord de faire des erreurs de vos propres mains. Je voulais faire un triangle qui était retourné vers la gauche, alors j'ai essayé un carré, mais j'ai abandonné parce que je ne pouvais pas afficher les blancs en demi-largeur en continu. Je voudrais un jour dessiner une image simple avec la phrase «pour».

Aussi, est-ce que Qiita peut publier quelque chose comme ça?

Recommended Posts