/ / kedy použiť while while namiesto loop - java

Kedy sa má použiť pri slučky loop - java

Učím sa java a android. Takmer všetko, čo dokážeme vykonať, zatiaľ čo slučky tie veci, ktoré dokážeme urobiť, urobíme.

Našiel som jednoduchú podmienku, keď je použitie while loop lepšie ako pre loop

Ak v mojom programe musím použiť hodnotu počítadla, myslím, že slučka je lepšia ako slučka

Použitie while while

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

V tomto prípade som zistil, že slučka je lepšia ako slučka, pretože ak chcem dosiahnuť to isté v slučke, musím priradiť hodnotu počítadla inej premennej.

Existuje však nejaká špecifická situácia, keď je slučka lepšia ako slučka

odpovede:

13 pre odpoveď č. 1

A for loop je len špeciálny druh while loop, ktorý sa stane, že sa bude zaoberať zvyšovaním premennej. Môžete napodobniť a for slučka s a while slučka v akomkoľvek jazyku. Je to iba syntaktický cukor (okrem pythonu, kde for je vlastne foreach). Takže nie, neexistuje žiadna špecifická situácia, keď je jedna lepšia ako druhá (aj keď z dôvodov čitateľnosti by ste mali uprednostniť for slučka, keď robíte jednoduché prírastkové slučky, pretože väčšina ľudí dokáže jednoducho povedať, čo sa deje).

Pretože sa môže správať ako keď:

while(true)
{
}

for(;;)
{
}

A zatiaľ sa môže správať ako pre:

int x = 0;
while(x < 10)
{
x++;
}

for(x = 0; x < 10; x++)
{
}

Vo vašom prípade by ste to mohli prepísať ako smyčku for for takto:

int counter; // need to declare it here so useTheCounter can see it

for(counter = 0; counter < 10 && !some_condition; )
{
//do some task
}

useTheCounter(counter);

8 pre odpoveď č. 2

Jeden hlavný rozdiel je while slučky sa najlepšie hodia, keď neviete vopred počet iterácií, ktoré musíte urobiť. Ak to viete pred vstupom do slučky, môžete použiť for slučky.


4 pre odpoveď č. 3

for a while sú ekvivalentné, iba odlišná syntax pre tú istú vec.


Môžete to zmeniť

while( condition ) {
statement;
}

do tohto:

for( ; condition ; ) {
statement;
}

Inak:

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

je ekvivalentná tomuto:

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

Preto používajte len to, ktoré vyzerá lepšie alebo lepšie povedané.


2 pre odpoveď № 4

Slučka while je vo všeobecnosti lepšia, keď nemáte iterátor (zvyčajne je počítadlo).


2 pre odpoveď № 5

Majte na pamäti,

Všetko, čo sa robí pomocou slučky for, je možné urobiť pomocou slučky while, ALE nie Všetky slučky môžu byť implementované pomocou slučky for.

Kým:

While-loops sa používajú, keď výstupná podmienka nemá nič spoločné s počtom slučiek alebo kontrolnou premennou

PRE:

for-loops sú len krátkou cestou na písanieslučka, zatiaľ čo inicializačný príkaz, kontrolný príkaz (kedy sa má zastaviť) a iteračný príkaz (čo robiť s kontrolným faktorom po každej iterácii).

Napríklad

V podstate pre slučky sú iba krátke ruky, zatiaľ čo slučky, ľubovoľné pre slučky môžu byť konvertované z:

for([initialize]; [control statement]; [iteration]) {
// ...
}

a

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

sú rovnaké.


1 pre odpoveď č. 6

pretože je konečný, v tom zmysle, že dokončí opakovanie, keď dôjde z prvkov, ktoré prechádzajú ....

pričom môže byť nekonečný, ak podmienka nie je splnená alebo je prerušená slučka

editovať

Moja chyba ... for môcť byť nekonečný


1 pre odpoveď č. 7

Jedna vec, ktorú by som mal zdôrazniť, je, že keď použijete slučku for, nemusíte priradiť počítadlo inej premennej. Napríklad for(counter=0; counter<10; counter++) je platný kód Java.

Pokiaľ ide o vašu otázku, slučka for for je zvyčajnelepšie, keď chcete, aby sa časť kódu spustila určitý počet krát, a slučka while je lepšia, keď je všeobecnejšia podmienka, aby bol kód naďalej v prevádzke, napríklad ak má logický príznak nastavený na true, keď je určitý podmienka je splnená v kódovom bloku.


1 pre odpoveď č. 8

Môžete urobiť niečo ako:

int counter;
for (counter = 0; counter < 10; ) {
//do some task
if(some condition){
break;
}
}
useTheCounter(counter);

Čokoľvek, čo dokáže slučka while-loop, sa dá urobiť aj v slučke for-loop a všetko, čo môže urobiť v slučke for-loop, sa dá urobiť aj v slučke while-loop.


1 pre odpoveď č. 9

Nie je špecifická situácia, keď for je lepší ako while.
Robia to isté.
Je len na vás, kedy použijete jednu z nich.


0 pre odpoveď č. 10

while slučky sú pritom oveľa flexibilnejšie for slučky sú omnoho čitateľnejšie, ak sa to pýtate. Ak vás zaujíma, ktorý z nich je rýchlejšie, potom sa pozrite na tento experiment, ktorý som uskutočnil v súvislosti s rýchlosťou for a while slučky.

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

while slučky sú rýchlejšie.


0 pre odpoveď č. 11
int counter = 0;
while (counter < 10) {
//do some task
if(some condition){
break;
}
}
useTheCounter(counter); // method which use that value of counter do some other task

Ahoj, opakujem váš kód, pretože je nesprávny. Zabudli ste zvýšiť počítadlo, aby zostalo na 0

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