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ď č. 1A 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.
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