Types de Boucles Imbriquées en Java
J'ai une question simple. Je dois trouver de nombreuses boucles imbriquées que possible en java. J'ai quelque chose comme pour la boucle et si l'instruction à l'intérieur. je sais que nous pouvons faire comme if{if{if{if{
quelque chose comme ça aussi. seulement besoin d'un peu plus d'idée de plus en plus de types de boucles imbriquées.
si vous pouvez écrire quelques exemples. Je vais être très heureux. merci.
public class Test {
public static void main (String []args) {
int i = 0;
for(int j = 1; j <= 5; j++) {
if(j == 1 || j == 5) {
i = 4;
} else {
i = 1;
}
for(int x = 0; x < i; x++) {
System.out.print("**");
}
System.out.println();
}
}
}
Voulez-vous savoir comment beaucoup de types de boucles imbriquées peuvent être écrits ou si il y a un limite supérieure pour les boucles imbriquées? Je suppose que le titre répond à ma question, de toute façon.
OriginalL'auteur dominoos | 2010-05-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez imbriquer autant de
for
/while
boucles comme vous le feriez pratiquement voulez en Java: il n'y a pas de limite pratique.Java dispose de 4 boucles:
for
Déclarationfor
Déclarationfor
Déclaration (aka "for-each
")while
DéclarationDéclaration (aka "
do-while
")Java n'a pas
goto
(ce qui n'est pas vraiment nécessaire de toute façon).Voir aussi
for
Déclaration-
de la boucleExemples
C'est un exemple typique d'un simple "triangle"-type de boucle imbriquée, où le nombre d'itération de la boucle interne dépend de la valeur itérée dans la boucle externe:
Voici un exemple d'un "jumelage"de type boucle imbriquée, où les deux boucles sont indépendants les uns des autres, en utilisant pour chaque construction:
La
for-each
construire, qui n'a pas explicite des indices, rend le indepedence de deux boucles évident: vous pouvez permuter deuxfor
énoncés dans le code ci-dessus, et que vous souhaitez profiter de toutes les paires, bien qu'énumérés dans un ordre différent.Cette utilisation d'un
boolean
méthode pour unwhile
boucle (celle dejava.util.Scanner
) est typique:Et voici un exemple qui montre comment
do-while
est différente dewhile-do
etfor
:Au-dessus de la boucle imprime
Hello!!!
: le corps d'undo-while
est exécutée avant l'expiration condition est vérifiée.Un exemple plus élaboré
Voici un exemple d'un sous-boucle logique, mais remaniée dans les méthodes pour rendre les choses plus lisibles. C'est quelque chose qui est important pour les débutants à apprendre: juste parce que vous pouvez physiquement nid de boucles autant de niveaux que vous le souhaitez, ne signifie pas que vous devriez. Par briser la logique de ce genre, le programme devient de plus en plus modulaire et lisible, et chaque logique se dresse sur ses propres et peut être testé et réutilisés, etc.
Cet extrait inverse les lettres d'un mot dans un
char[]
en place.Cet exemple est aussi instructive que même si c'est essentiellement une boucle imbriquée à l'algorithme, c'est en fait
O(N)
! C'est une erreur de penser que l'doublement imbriquée de la boucle de l'algorithme doit êtreO(N^2)
-- cela dépend vraiment de l'algorithme lui-même plus que la structure physique.Nested loop Algorithmes de
Ce sont des algorithmes classiques traditionnellement mis en œuvre à l'aide de boucles imbriquées (au moins dans leur naïve formes):
O(N^2)
Algorithmes de tri:O(N^3)
triplement de boucle imbriquée algorithmes:O(N^2)
, chaîne de distance d'édition)O(N^3)
, toutes les paires de plus court chemin dans le graphe)Elles sont loin d'être exhaustive d'échantillonnage, mais il doit fournir une bonne introduction à une variété de imbriquée
for
boucles d'algorithmes pour les débutants.demandez-vous combien de structures de contrôle il existe en Java? Parce que c'est une question entièrement différente.
Je posais pour des exemples de boucles imbriquées. et je voulais montrer les vérités de boucles imbriquées.
Je ne peux pas faire de votre groupe de projet de livre pour vous. J'ai fait tout ce que je peux ici, désolé.
OriginalL'auteur polygenelubricants
Le code
if { if { if { ... } } }
n'est pas un exemple de boucles imbriquées.if
n'utilise pas de boucle.Boucle expressions sont par exemple
for
etwhile
.OriginalL'auteur Mark Byers
Boucles peut être fait en utilisant les 3 de base de la boucle de déclarations:
for
,while
etdo..while
.Cependant, si votre question est sur le nombre de types de boucles imbriquées sont possible en Java, je dirais BEAUCOUP, puisque vous pouvez les organiser et de les mélanger comme vous le souhaitez.
OriginalL'auteur jweyrich
J'aime la réponse précédente, mais dans une tentative de répondre directement à cette curieuse question:
if-else
n'est pas un type de la boucle. Java afor
,while
, etdo-while
boucles. On pourrait soutenir que le "foreach" la syntaxe pourfor
boucles, introduit dans Java 5, est un autre type de boucle pour votre but. Mais vraiment, il est juste un raccourci pour l'écriture d'une boucle while.Mais tous ces "différents" boucle types sont juste des constructions d'un langage. Dans le byte code est compilé, ils ne sont pas intrinsèquement différents.
OriginalL'auteur Sean Owen
Je suppose que ça dépend du compilateur. J'ai écrit un programme de test simple qui génère des fichiers Java avec différents niveaux de boucle de nidification.
Une fois que les fichiers sont générés, vous faites un manuel de recherche binaire. Compiler test5000. Si elle réussit, compiler test7500, et si ça ne marche pas, compiler test2500. Après 13 ou 14 étapes, vous devriez venir à une conclusion.
Mon compilateur de la zone de frappe semble être 5345 niveaux d'imbrication pour ce programme simple, donc je suppose que, dans la pratique, il n'a pas d'importance du tout.
OriginalL'auteur fredoverflow
Ouais, la nidification n'a pas de limite.
OriginalL'auteur fastcodejava