Jak fungují smyčky do-while v počítačovém programování

  • Joseph Goodman
  • 0
  • 2627
  • 556
reklama

Když se učíte programovat Jak se učit programování bez stresu Jak se učit programování bez stresu Možná jste se rozhodli programovat, ať už pro kariéru nebo jen jako koníček. Skvělý! Ale možná se začínáte cítit ohromeni. Není to tak skvělé. Zde je nápověda, která vám usnadní cestu. , porozumění základním stavebním kamenům je klíčem k časnému úspěchu. Poznáte obtížná témata později, ale pokud nerozumíte typům proměnných, smyčkám a funkcím, je těžké se dostat daleko.

Většina nových programátorů se o nich dozví prohlášení if-else, zatímco smyčky, a pro smyčky zanedlouho. Ale jedním z typů smyček, kterým možná nerozumíte, je smyčka do-while. Podívejme se, jak tato smyčka funguje, kdy ji budete chtít použít, a podívejme se na několik příkladů.

Základy

Smyčka do-while provede blok kódu alespoň jednou, zkontroluje, zda je podmínka pravdivá, a pak pokračuje ve spuštění kódu uvnitř v závislosti na stavu. Podívejme se na jednoduchý příklad pseudokódu (protože vám pomohou učit se! 10 základních příkladů Pythonu, které vám pomohou rychle se naučit 10 Základní příklady Pythonu, které vám pomohou rychle naučit Tento článek základních příkladů pythonu je určen těm, kteří již mají nějaké programování a jednoduše chcete přejít na Python co nejrychleji.):

do output "Proměnná x se rovná" + x; x ++;  zatímco (x < 5); output "The loop has ended."; 

V tomto kousku kódu jsou řádky uvnitř dělat závorky vždy běží alespoň jednou. Tohle znamená tamto X může být jakákoli hodnota na začátku smyčky.

Li X rovná se 1 při spuštění smyčky, bude se opakovat do X nesplňuje podmínku vedle zatímco. To by tedy proběhlo celkem 5krát. Když X není menší než 5, smyčka končí a pokračuje po kódu. Tento výstup by vypadal následovně:

Proměnná x se rovná 1 Proměnná x se rovná 2 Proměnná x se rovná 3 Proměnná x se rovná 4 Proměnná x se rovná 5 Smyčka skončila.

Naopak, pokud X byl roven 20, když tato smyčka začala, mohla by běžet pouze jednou. Takže byste viděli jeden výstupní příkaz, X zvyšuje na 21 a smyčka by skončila, protože 21 není menší než 5. Jeho výstup by byl:

Proměnná x se rovná 20 Smyčka skončila. 

Kontrast s chvíli a pro smyčky

Jak to funguje? dělat, zatímco smyčka se liší od ostatních smyček? Nejdůležitější rozdíl je v tom, že smyčky do-while testují stav po provedení bloku kódu, zatímco ostatní smyčky kontrolují stav před spuštění kódu uvnitř.

Zvažte tento základní pseudokód zatímco smyčka pro srovnání:

x = 10; zatímco (x < 5)  output "The loop has run!"; x++;  

Tady, X je nastavena na 10 a zatímco loop to zkontroluje X je méně než 5 před spuštěním. Z tohoto důvodu se kód uvnitř nikdy nespustí. Použití stejné logiky na smyčku do-while nám dává něco podobného:

x = 10; do output "Smyčka byla spuštěna!"; x ++;  zatímco (x < 5) 

Tato smyčka vydá text jednou, přírůstek X, pak pokračujte dál.

Všimněte si, že můžete funkci do-while znovu vytvořit pomocí zvláštního příkazu před a zatímco smyčka, jako například:

výstup "Ahoj!"; x ++; zatímco (x < 5)  output "Hello!"; x++;  

To je však neohrabané a není důvod to dělat, když existují smyčky do-while.

Pro smyčky

Smyčky do-while mají podobný rozdíl pro smyčky. A pro loop definuje proměnnou, určuje, jak dlouho má být smyčka spuštěna, a nastavuje chování na konci každé iterace.

Tady je jednoduchý pro smyčka pro srovnání:

pro (int i = 0; i < 5; i++)  output "The loop has run " + i + " times.";  

To zdůrazňuje dobrý kontrast mezi dělat, zatímco a pro smyčky - přesně víte kolikrát pro smyčka bude spuštěna, protože nastavíte podmínky na začátku. Pokud výše uvedený kód změníte na smyčku do-while, jako je tato:

do output "Smyčka běžela" + i + "krát."; i ++;  zatímco já < 5); 

Při spuštění smyčky byste mohli skončit s problémem. Pokud jste to neinicializovali i někde jinde nevíte, jaká bude jeho hodnota, když dělat část běží - a poběží alespoň jednou. Li i bylo 500, když tato smyčka běžela, výstup by byl nepřesný.

Celkem:

  • A smyčka do-while je užitečné, pokud chcete provést příkaz alespoň jednou a nepřetržitě, dokud není podmínka nepravdivá.
  • A zatímco smyčka umožňuje opakovat blok kódu, pokud je podmínka splněna, a zastavit, jakmile podmínka přestane platit.
  • A pro smyčku umožňuje přesně určit, kolikrát by se měla smyčka spustit, nastavením vlastních parametrů.

Opuštění smyčky do-while

Samozřejmě musíte mít podmínku ukončení pro smyčky do-while stejně jako jakékoli jiné. Pokud ne, můžete skončit s nekonečnou smyčkou. Zvažte následující úryvek:

x = 5; do output "To nikdy nekončí!";  zatímco (x < 10); 

Pokud nemáte přírůstek X kdekoli jinde v kódu, pak tato smyčka poběží navždy. Nyní jsou někdy užitečné nekonečné smyčky, protože programátor nastaví kód tak, aby vytrhl smyčku jinde. Ale častěji než ne, náhodně se začínající kodéry náhodně dostanou do nekonečných smyček. 10 nejhorších chyb programování v historii 10 nejhorších chyb programování v historii Ve své bouřlivé minulosti také kódovalo způsobené ničení. Případy špatného kódu způsobily katastrofu na velké úrovni. Následuje 10 nejhorších chyb programování v historii. .

Zde je příklad vhodné nekonečné smyčky. Řekněme, že navrhujete hru 5 bezplatných softwarových nástrojů pro vývoj her pro vytvoření vašich vlastních her 5 softwarových nástrojů pro vývoj bezplatných her pro vytvoření vašich vlastních her Bezplatný software pro vývoj her je skvělý způsob, jak zahájit výrobu videoher. Sestavili jsme nejlepší herní software na trhu. kde uživatel hodí kostkou a musí dostat 6, aby opustil domovskou základnu. Chcete pokračovat v převracení zápustky, dokud nepřistane na 6, a samozřejmě musíte válet alespoň jednou. Můžete tedy použít tento kód:

do int roll = random (1, 2, 3, 4, 5, 6); if (roll == 6) break;  while (true); 

while (true) podmínka znamená, že tato smyčka poběží navždy, což chceme, protože uživatel musí hodit, dokud nedostane 6. Bez přestávka prohlášení, uvízlo by to. Ale jakmile uživatel hodí 6, -li příkaz se stane pravdivým a sekvence vypukne ze smyčky a přesune se na to, co je potom.

Pokud nechcete, nemusíte použít prohlášení o přerušení. Ve skutečnosti je asi lepší se vyhnout přerušovacím příkazům, pokud můžete. Ztěžují udržování vašeho kódu a sledování stavu je snazší sledovat. Takto upravený kód tedy dosahuje stejného účelu:

do int roll = random (1, 2, 3, 4, 5, 6);  zatímco (role! = 6); 

Špatná nekonečná smyčka

Nekonečná smyčka, kterou máte plán na ukončení, je v pořádku. Ale někdy náhodou vytvoříte nekonečnou smyčku, jako v příkladu níže:

int x = 7; do x = 1; x = x + 2; výstup "x se rovná" + x;  zatímco (x < 10); 

Může to vypadat, jako by se to zvyšovalo X o 2 každou smyčku a opakuje se, dokud x není menší než 10, ale podívejte se blíže. Protože smyčka je nastavena X rovná 1 pokaždé, když běží, je to nekonečná smyčka. Všimněte si toho x = 1 a x = x + 2 znamená, že X je vždy 3 na konci bloku bez ohledu na to, kolikrát to běží, což znamená X nikdy není menší než 10.

Sledujte příkazy uvnitř smyčky, které neúmyslně mění proměnnou pokaždé, když běží, aby se předešlo situacím jako je tato.

Příklady ze skutečného světa

Diskutovali jsme o některých hypotetických příkladech výše, ale podívejme se rychle na několik užitečných příkladů do-while smyček v reálném světě..

Pokud jste vytvářeli smyčku pro čtení dat ze souboru, dokud nedosáhne konce, použijete smyčku do-while. Je zřejmé, že pokud plánujete číst ze souboru, musíte chytit alespoň jednu postavu, takže byste mohli použít takovou smyčku do-while (v tomto příkladu díky uživateli Stack Exchange Steven Burnap):

do result = readData (buffer);  while (výsledek! = EOF); 

Bez do-time, budete muset použít mírně ošklivé řešení:

while (true) result = readData (buffer); if (result == EOF) break;  

Dalším příkladem je chytání vstupu od uživatele. Řekněme, že píšete program, který žádá uživatele o zadání kladného čísla. Pomocí do-while se můžete ujistit, že je jejich vstup vhodný:

do output "Zadejte kladné číslo:"; int input = getInput ();  while (vstup < 0); 

S touto smyčkou vidí uživatel výzvu k zadání čísla a jednou zadá hodnotu. Pokud zadají záporné číslo, smyčka se spustí znovu a zobrazí se výzva k zadání kladného čísla, dokud nevyhoví. Ostatní smyčky prostě nedávají smysl pro tento typ akce.

Připraveno k použití smyček do-while?

Provedli jsme průzkum do-while smyček, včetně jejich základních principů, jak je nejlépe využít a jak je porovnat s jinými smyčkami. Pokud si nepamatujete nic jiného z tohoto článku, vězte, že smyčky do-while jsou pro když potřebujete něco spustit alespoň jednou, ale nevíte, kolikrát to budete potřebovat před zahájením smyčky.

Přemýšlejte o takových situacích ve svých programech a snadno najdete místa, kde se slučují smyčky do-while. Téměř všechny nejlepší jazyky pro začátečníky 6 Nejjednodušší programovací jazyky pro začátečníky 6 Nejjednodušší programovací jazyky pro začátečníky Naučit se program je o nalezení správného jazyka stejně jako o procesu editace. Zde je prvních šest nejjednodušších programovacích jazyků pro začátečníky. podpora do-while smyček, takže byste neměli mít žádné potíže s jejich implementací.

Pokud se učíte základům, ujistěte se, že si přečtete naše nejlepší triky pro zvládnutí nového programovacího jazyka. 7 Užitečné triky pro zvládnutí nového programovacího jazyka 7 Užitečné triky pro zvládnutí nového programovacího jazyka Je v pořádku být ohromen, když se učíte kódovat . Pravděpodobně zapomenete na věci tak rychle, jak se je naučíte. Tyto tipy vám mohou pomoci lépe si uchovat všechny nové informace. .

Jaké další situace si můžete myslet, kde má do-time smysl? Diskutujte a dejte nám vědět, pokud ve svých programech používáte smyčky do-while v sekci komentářů!

Obrázek Kredit: Aaban přes Shutterstock.com




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.