10
votes

Quand utiliser en boucle plutôt que pour la boucle

J'apprends Java aussi bien Android. Presque tout ce que nous pouvons jouer en boucle ces choses que nous pouvons faire en boucle.

J'ai trouvé une condition simple où l'utilisation de la boucle est meilleure que pour la boucle

Si je dois utiliser la valeur du compteur dans mon programme, je pense que la boucle est meilleure que pour la boucle

en utilisant tandis que la boucle xxx

Dans ce cas, j'ai trouvé pendant que la boucle est meilleure que pour la boucle car si je veux obtenir la même chose pour boucle que je dois attribuer la valeur du compteur à une autre variable.

mais y a-t-il une situation spécifique lorsque la boucle est meilleure que pour la boucle


1 commentaires

Je voudrais juste faire userethecounter (10)


14 Réponses :


2
votes

Pour est fini, dans le sens où il finira de boucler lorsqu'il est à court d'éléments à boucle ....

Bien que peut être infini si une condition n'est pas remplie ou la boucle cassée

Modifier

Mon erreur ... pour peut être infini ..


7 commentaires

pour peut être infini: pour (;;)


pour peut être infini aussi: pour (i = 1; i == i - 1; i ++) {...}


Utilisation de pour si vous souhaitez toucher tous les éléments d'une collection et pendant si vous voulez casser tôt est assez sensible.


@ K4EMIC: Vous pouvez sortir d'un pour boucle de la même manière que vous sortiriez d'un pendant boucle. Il n'y a pas de différence.


@Chris bien sûr, ai-je écrit quelque chose qui a indiqué que vous ne pouviez pas? J'ai simplement indiqué ce que je considère comme une façon raisonnable de différencier de quelle manière de boucler à travers des collections.


Mais les deux peuvent être infinis si vous ne rompez pas non plus en rencontrant une condition ou en sautant.


Ils font la même chose .... Le seul diff est que pour peut rendre votre code plus court la plupart des temps, mais vous pouvez archiver la même chose avec les deux. Vous pouvez utiliser ce qui convient le mieux à votre situation.



15
votes

A pour La boucle est juste un type spécial de la boucle tandis que, qui arrive à incrémenter une variable. Vous pouvez imiter un pour en boucle avec un pendant en boucle dans n'importe quelle langue. C'est juste le sucre syntaxique (sauf python où pour est en fait foreach ). Donc, non, il n'y a pas de situation spécifique où l'un est meilleur que l'autre (bien que pour les raisons de lisibilité, vous devriez préférer un pour en boucle lorsque vous faites de simples boucles incrémentielles, car la plupart des gens peuvent facilement dire ce qui se passe facilement ).

pour peut se comporter comme tandis que: xxx

et tout moment peut se comporter comme pour: xxx

dans votre CAS, oui, vous pouvez le ré-écrire comme une boucle comme celle-ci: xxx


2 commentaires

En fait, le compteur var n'est pas accessible à l'extérieur du pour (sauf si vous ne le déclarez pas en dehors de sa performance)


tandis que et pour ne sont pas exactement les mêmes lors de l'utilisation de l'incrément - si vous devez également utiliser continuer . Avec le tandis que la variable n'augmentera pas (sans effort supplémentaire), mais avec pour ça va.



2
votes

La boucle tandis que la boucle est généralement meilleure lorsque vous n'avez pas d'itérateur (comptoir habituellement).


0 commentaires

19
votes

Une différence principale est pendant que Les boucles sont mieux adaptées lorsque vous ne savez pas d'avance sur le nombre d'itérations que vous devez faire. Lorsque vous le savez avant d'entrer dans la boucle, vous pouvez utiliser pour boucle.


2 commentaires

Pouvez-vous donner un exemple à votre réponse?


Typiquement, lors de la lecture d'un fichier ligne-ligne à partir d'un tampon, vous utiliseriez une boucle tandis que la boucle (comme vous ne savez pas lorsque le marqueur de fin de fichier apparaîtra)



1
votes

Une chose que je pense que je devrais signaler, c'est que lorsque vous utilisez A pour boucle, vous n'avez pas besoin d'attribuer à une autre variable. Par exemple, pour (compteur = 0; compteur <10; compteur ++) est valide code Java.

Quant à votre question, A pour la boucle est généralement meilleur lorsque vous souhaitez qu'un morceau de code fonctionne un certain nombre de fois, et une boucle tandis que la boucle est meilleure lorsque la condition du code à continuer est plus générale, telle que Avoir un drapeau booléen qui n'est défini que pour true quand une certaine condition est remplie dans le bloc de code.


0 commentaires

1
votes

Vous pouvez faire quelque chose comme: xxx

Tout ce qu'une boucle de temps peut faire, peut également être effectuée dans une boucle à boucle et tout ce qu'une boucle de boucle peut faire, peut aussi être fait dans une boucle de temps.


0 commentaires

1
votes

non. Il n'y a pas une situation spécifique où pour est meilleur que pendant .
Ils font la même chose.
C'est à vous de choisir de choisir lors de l'appliquer l'un de ceux-ci.


0 commentaires

3
votes

N'oubliez pas,

Tout fait avec A pour une boucle peut être fait avec une boucle de temps, mais pas Toutes les boucles peuvent être implémentées avec une boucle pour la boucle. P> blockQuote>

tandis que: strong> p>

tandis que des boucles code> sont utilisés lorsque la condition de sortie n'a rien à voir avec le nombre de boucles ou une variable de contrôle em> p>

pour: strong> p>

for-boucles code> sont juste une courte Coupe de manière coupée pour écrire une boucle tandis que lors d'une déclaration d'initialisation, déclaration de contrôle (quand arrêter) et une instruction d'itération (que faire avec le facteur de contrôle après chaque itération). EM> P> P> Par exemple, p>

Fondamentalement pour les boucles ne sont que de courte main pendant que des boucles, tout pour la boucle peut être converti de: p> xxx pré>

et p>

[initialize]; 
while([control statement]) { 
   //Do something [iteration];
   } 


1 commentaires

Omettez l'initialisation et l'itération, le pour boucle agira exactement comme un pendant boucle



8
votes

pour code> et pendant que code> est équivalent, juste une syntaxe différente pour la même chose.


Vous pouvez transformer ce p> xxx pré>

à ceci: p> xxx pré>


l'autre moyen: p> xxx pré>

est équivalent à Ceci: P>

init;
while(condition) {
    statement;
    update;
}


0 commentaires

0
votes

pendant que Les boucles sont beaucoup plus flexibles, tandis que pour Les boucles sont beaucoup plus lisibles, si c'est ce que vous demandez. Si vous vous demandez lequel est plus vite , regardez cette expérience que j'ai menée concernant la vitesse de pour et pendant

https: // sites.google.com/a/googlesciencefair.com/science-fair-2012-project-96b21c243a17f297ECA9531A766-1333147438-57/Home

pendant que Les boucles sont plus rapides.


0 commentaires

1
votes
int counter = 0;
while (counter < 10) {
  //do some task
  if(some condition){
      break;
  }
  counter++;
}
useTheCounter(counter); // method which use that value of counter do some other task

0 commentaires

3
votes

Utilisez A pour la boucle lorsque vous connaissez le nombre de fois que vous souhaitez boucler. Le terme technique pour cela est le nombre d'itérations. Comment connaissez-vous le nombre d'itérations? Vous connaissez le début, l'arrêt et l'étape. Si vous connaissez ces trois informations, vous devez utiliser une boucle car c'est le bon outil pour le travail.
Utilisez une boucle DO lorsque vous ne connaissez pas le nombre d'itérations. Si vous ne connaissez pas le démarrage, arrêtez-vous, étape ou une combinaison de ceux-ci, vous devez utiliser une boucle de faire. L'expression sera évaluée au sommet de la boucle. Utilisez une boucle à faire si vous voulez boucler au moins une fois. Utilisez juste une boucle de temps si vous ne voulez pas boucler au moins une fois. L'expression sera évaluée au bas de la boucle.


0 commentaires

0
votes

Qu'est-ce que vous pouvez écrire pour la boucle peut être converti en boucle. Les avantages de l'utilisation de la boucle sont

  1. La syntaxe vous permet de démarrer un compteur, définissez la condition de sortie de la boucle, puis de l'incrément automatique.

    Vous pouvez obtenir la même chose en boucle également. Mais tout ce que vous pouvez faire en boucle n'est pas possible de faire en boucle. Par exemple, si vous avez plus d'un compteur et que vous voulez que l'un d'entre eux augmente en fonction d'une condition, alors que vous ne pouvez utiliser que. En boucle à la fin de la boucle, le compteur augmente automatiquement.

    meilleure utilisation

    Pour la matrice ou le tableau unique Traversal directionnel unique, car la boucle est bonne En cas de multiples conditions et de plusieurs compteurs, alors que la boucle est bonne. Si Yuo veut traverser un tableau des deux côtés en fonction de différentes conditions, alors que la boucle est bonne.

    En boucle, il y a beaucoup plus de chances d'oublier le compteur d'incrément et finit par une boucle infinie, tandis que dans la syntaxe de boucle vous aidera à définir facilement le comptoir.


0 commentaires

0
votes

Pour les boucles incluent la notion de comptage, ce qui est génial. Pourtant, lorsque vous ne savez pas combien de fois le code devrait courir, tandis que les boucles ont un sens.


0 commentaires