Podmínka pro ukončení smyčky while. Procházení řádky listu. Smyčka for. Obecná forma příkazu cyklu for

Jedním z nejdůležitějších nástrojů v programování jsou smyčky. Jsou užitečné v případech, kdy potřebujete něco udělat několikrát.

Pokud existuje takový úkol, například zobrazit řádek „ahoj všichni“ 1000krát. Pak to bez použití cyklu za prvé zabere spoustu času a za druhé to nebude vypadat moc hezky. Proto musíte dokonale znát cykly protože se používají velmi, velmi často.

V programování jsou čtyři smyčky, to jsou while, do-while, for a foreach. Každý z nich má svou vlastní syntaxi a každý se používá v určitých případech.

Nejčastěji používané smyčky jsou for a foreach, dále while a smyčka do-while je velmi vzácný.

A začneme krátkou smyčkou.

Syntaxe cyklu while je následující:


Nejprve deklarujeme proměnnou i, což je čítač, a uvnitř smyčky tento čítač inkrementujeme. Do závorek napíšeme podmínku pro vstup/opuštění smyčky.

Komentář! Správně zapište výstupní podmínku, jinak se může stát nekonečná smyčka a pak skript zamrzne. K takovému cyklu může dojít, pokud například ve výstupní podmínce jednoduše napíšeme true.

Vytiskněme například řetězec "Ahoj všichni!" 10krát.

Var i = 0; while(i "); i++;)

Proměnná i může začínat od 0 nebo 1 nebo od jakéhokoli jiného čísla.

Výstupní podmínka je zároveň vstupní podmínkou. Cyklus funguje následovně: Nejprve zkontroluje, zda je proměnná i menší než 10, a pokud je podmínka pravdivá, vstoupíme do cyklu, jinak ne. V v tomto případě pokud je proměnná i rovna například 30, pak se smyčka neprovede, protože 30 není menší než 10.

Vstoupili jsme do cyklu, vytiskli řádek „Ahoj všichni“, inkrementovali počítadlo a opět přejdeme do podmínky, kde opět zkontrolujeme, zda je hodnota proměnné i menší než 10, pak cyklus vstoupíme, jinak jej opustíme. A to se děje až do okamžiku, kdy se vstupní podmínka stane nepravdivou, to znamená, že hodnota proměnné i bude 10. 10 není menší než 10, takže už nevstupujeme do smyčky, ale jedeme dál.

Komentář! Nezapomeňte zvýšit počítadlo (i++), jinak skončíte s nekonečnou smyčkou.

Zabývali jsme se smyčkou while, nyní přejdeme ke smyčce do-while.

Syntaxe cyklu do-while je následující:


Rozdíl mezi smyčkou while a smyčkou do-while je v tom, že smyčku do-while lze provést alespoň jednou bez ohledu na podmínku, zatímco smyčka while nebude provedena vůbec, pokud je podmínka nepravdivá.

Komentář! Stejně jako ve smyčce while nezapomeňte zvýšit počítadlo i.

Pojďme k praxi. Vypočítejme například součin čísel od 1 do 10.

Var i = 1; produkce var = 1; do( produkce *= i; i++; )zatímco (i

Výsledkem bude číslo 3628800. V prvním kroku jsme i přes její stav okamžitě vstoupili do smyčky, kde byla provedena operace výroba *= i (to je stejné jako výroba = výroba * 1). Poté počítadlo zvýšíme. Po inkrementaci má hodnotu 2. A na konci zkontrolujeme podmínku, pokud je hodnota čítače menší nebo rovna 10, tak přejdeme k další iteraci smyčky, jinak smyčku opustíme a pokračujeme dál .

pro smyčku

Jak jsem již psal výše pro smyčku, se vyskytuje poměrně často, takže ho musíte velmi dobře znát.

pro syntaxi smyčky další:


Pro lepší pochopení pojďme řešit jednoduchý úkol. Řekněme, že potřebujeme vypočítat součet čísel od 1 do 1000 pomocí cyklu for.

Var summa = 0; for(var i = 1; i

Uložíme dokument, otevřeme jej v prohlížeči a uvidíme, že výsledek je 500500.

Komentář! Pokud je ve smyčce pouze jeden příkaz, složené závorky nejsou nutné.

Pro demonstraci zobrazme na obrazovce pětkrát nějaký řetězec, například „Ahoj!“

For(var i = 1; i

Komentář! Po provedení smyčky zůstane v proměnné i poslední hodnota.

Nyní vyřešme problém trochu složitější, například potřebujeme 100x vytisknout řetězec "Ahoj". A aby to všechno neskončilo v jedné řadě, tak po každé 10. iteraci přejdeme na nový řádek. A na konci vypíšeme hodnotu proměnné i.

For(var i = 1; i<= 100; i++){ document.write("привет!"); if(i % 10 == 0)  document.write("
"); ) document.write("

Proměnná i = " + i + "

"); // i = 101

foreach smyčka Obvykle se používá k iteraci přes objekty a pole. Proto o tom budu mluvit v článku popisujícím práci s poli.

příkaz break je určen k násilnému opuštění smyčky.

Pokračovat operátor umožňuje přerušit aktuální iteraci smyčky a přejít k další.

Pro lepší pochopení vyřešíme i jednoduchý problém. Řekněme, že chceme vypočítat součet lichých čísel od 1 do 20. A když dosáhneme 15. iterace, opustíme smyčku.

Var summa = 0; for(var i = 1; i<= 20; i++){ //Пропускаем текущею итерацию цикла if(i % 2 == 0) continue; summa += i; //Выходим совсем из цикла. if(i == 15) break; document.write(i + ". Итерация
"); ) document.write("

summa= " + suma + "

"); //součet = 64

Dokument uložíme, otevřeme v prohlížeči a podíváme se na výsledek.

Pro procvičení si zkuste změnit psaný scénář tak, aby počítal součet sudých čísel.

Tímto tento článek končí. Teď to víš syntaxe smyček while, do-while, for a jak s nimi pracovat. Také jsme se potkali přerušit a pokračovat ve výpovědích.

Často je při programování úloh nutné, aby stejná sekvence příkazů byla provedena několikrát. Tento proces se nazývá cyklický. Algoritmus, ve kterém se určitá sekvence příkazů několikrát opakuje s novými vstupními daty, se nazývá cyklický.

K implementaci cyklického procesu používají programovací jazyky smyčky. Programovací jazyk C/C++ má snadno použitelné operátory smyček.

2. Typy smyčkových operátorů v C++

V C++ existují 3 typy operátorů smyček:

  • pro smyčku;
  • zatímco smyčka s předpokladem;
  • smyčka do...while s postcondition.

Každý z operátorů smyčky má své vlastní aplikační funkce. Kterýkoli z výše uvedených příkazů smyčky může být nahrazen jiným.

3. Pro smyčku. Obecná forma příkazu cyklu for

V C++ může mít cyklus for velmi širokou implementaci a aplikaci. Smyčce for se také říká smyčka s parametrem.

Obecná forma příkazu cyklu for je:

pro ( inicializace ; výraz ; zvýšení ) { // ... }
  • inicializace – operace přiřazení, ve které se nastavuje počáteční hodnota proměnné smyčky. Tato proměnná je čítač, který řídí činnost smyčky. Počet proměnných řídících cyklus for může být dvě nebo více;
  • výraz– podmíněný výraz, který kontroluje hodnotu proměnné smyčky. V této fázi je určeno další provedení cyklu;
  • zvýšení– určuje, jak se změní hodnota proměnné cyklu po každé iteraci.

Cyklus for běží až do hodnoty výraz rovná se pravda.

Jakmile se hodnota výrazu stane nepravdivou, cyklus zastaví provádění a provede se příkaz, který následuje po cyklu for.

4. Příklady použití operátoru smyčky for Příklad 1

Najděte součet všech celých čísel od 100 do 300.// součet čísel od 100 do 300<=300; i++) sum = sum + i; // sum = 40200

int součet; int i; součet = 0; pro (i = 100; i Příklad 2 Dané přirozené číslo n

. Vypočítejte částku:

Fragment kódu, který řeší tento problém.// s = 1 + 1/2 + 1/3 + ... + 1/n int n; plovoucí s = 0; int i;// zadejte hodnotu n<=n; i++) s = s + 1.0/i; // s = 2.08333

n = 4; pro (i = 1; i

V tomto příkladu se pro získání reálné hodnoty zadá místo čísla 1 (celočíselný typ) číslo 1.0 (reálný typ). Provoz divize

dává skutečný výsledek. Příklad 3

. Vypočítejte částku:

plovák s; int i; s = 0; for (i=50; i>=1; i--) s = i + Math::Sqrt(s); s = Math::Sqrt(s); // s = 1,7579

V tomto příkladu hodnota čítače i ve smyčce for se mění v sestupném pořadí. Tato hodnota se sníží o 1 každou iteraci cyklu. Při řešení takových problémů se musí hodnota čítače smyčky změnit z poslední na první hodnotu. V tomto případě od 50 do 1.

Při výpočtech byla použita funkce Sqrt() z knihovny Math.

5. Jaké možnosti existují pro implementaci cyklu for?

Smyčka for může mít několik implementací. Počet proměnných řídících cyklus for může být jedna, dvě nebo více.

Smyčce for může chybět některý z prvků záhlaví smyčky:

  • inicializace;
  • výraz;
  • růst

Příklad operátor smyčky for, který má 2 řídicí proměnné. Najděte významy produktu:

D = (1 + cos(9)) (2 + cos(8)) … (9 + cos(1))

. Vypočítejte částku:

// D = (1 + cos(9))*(2 + cos(8))* ... *(9 + cos(1)) int i, j; plovák d; d = 1; pro (i = 1, j = 9; i<=9; i++, j--) d = d * (i + Math::Cos(j));

Ve výše uvedeném fragmentu kódu používá cyklus for dvě proměnné, které mění jejich hodnotu ( i , j ).

6. Zatímco smyčka. Obecná forma

Cyklus while se nazývá smyčka předpokladů. Obecná forma while smyčky je následující:

zatímco ( výraz ) { // sekvence operátorů // ... }

Kde výraz– jakýkoli platný výraz v C++. Posloupnost příkazů se provádí až do podmíněného výraz vrací true . Jakmile výraz stane false , provádění cyklu while je ukončeno a řízení je přeneseno na další příkaz po cyklu while.

7. Příklady použití operátoru smyčky while

4. Příklady použití operátoru smyčky for Vzhledem k reálnému číslu A. Najděte nejmenší Dané přirozené číslo, při kterém

Úvahy. Na začátku je hodnota součtu menší než hodnota A. Jak každá iterace prochází, hodnota součtu se postupně zvyšuje. V určitém okamžiku (v určité hodnotě Dané přirozené číslo) tato částka bude vyšší než hodnota A. Tento okamžik (tj Dané přirozené číslo) je třeba opravit. K výpočtu Dané přirozené číslo, smyčka while je vhodná.

. Vypočítejte částku:

plovák a; int n; plovoucí součet; // zadejte hodnotu a a = 2,2; n = 1; součet = 1,0/n; zatímco (součet< a) { n++; sum = sum + 1.0/n; } // n = 5; sum = 2.283334

int součet; int i; součet = 0; pro (i = 100; i Je dáno přirozené číslo. Určete v něm počet číslic 3.

. Vypočítejte částku:

// počet číslic 3 v čísle int n; // dané přirozené číslo int k; // počet číslic 3 v čísle int t, d; // další proměnné int n; plovoucí s = 0; int i; n = 12343; t = n; // vytvořit kopii n k = 0; zatímco (t>0) (d = t % 10; // výběr poslední číslice if (d == 3) k++; t = t/10;// snížení bitové hloubky čísla

V tomto příkladu bude hodnota původního čísla při každé iteraci vydělena 10. Bitová hloubka čísla se tak sníží. Při každé iteraci se pomocí % operace jazyka C++ vezme zbytek dělení 10, to znamená, že se určí poslední číslice čísla. Pokud je tato číslice 3, pak se počítadlo k zvýší o 1.

8. Obecná forma operátoru smyčky do...while

Smyčku do...while je vhodné použít v případech, kdy je potřeba provést iteraci alespoň jednou. Na rozdíl od cyklů for a while je ve smyčce do...while podmínka kontrolována při opuštění smyčky (nikoli při vstupu do smyčky). Smyčka do...while se také nazývá smyčka postcondition.

Obecná forma příkazu cyklu do...while je:

dělat ( // sekvence operátorů// ... ) zatímco ( výraz );

Kde výraz– podmíněný výraz, který kontroluje hodnotu proměnné smyčky. V této fázi je určeno další provedení cyklu.

Složené závorky v této smyčce jsou volitelné.

Cyklus funguje následovně. Nejprve se provede tělo smyčky. Poté se hodnota zkontroluje výraz(podmíněný výraz). Pokud je hodnota výraz je true (pravda), tělo smyčky se provede znovu. Jednou hodnotu výraz stane false , provádění smyčky se zastaví

9. Příklady použití operátoru smyčky do...while

Příklad. Pomocí cyklu do...while najděte hodnotu součtu:

S = 1 + 3 + … + 99

. Vypočítejte částku:

// s = 1 + 3 + ... + 99 int t; int s; s = 0; t = 1; do ( s = s + t; t = t + 2; ) zatímco (t<=99); // s = 2500
10. Vnořené smyčky. Příklady použití

Vnořené smyčky lze použít například při práci s dvojrozměrnými (vícerozměrnými) poli (nulování pole, počítání součtů, součinů atd.).

4. Příklady použití operátoru smyčky for Vypočítat produkt

D = 1 · (1 + 2) · (1 + 2 + 3) · … · (1 + 2 + … + 9)

. Vypočítejte částku:

// D = 1 * (1+2) * (1+2+3) * ... * (1+2+...+9) plovák d; // výsledkem je produkt int i, j; // čítače smyček int s; // další proměnná d = 1; pro (i = 1; i<=9; i++) { s = 0; for (j = 1; j<=i; j++) s = s + j; d = d * s; } // d = 2.571912E+09

V tomto příkladu ve smyčce for s čítačem i běžící smyčka for s čítačem j .

int součet; int i; součet = 0; pro (i = 100; i Je dáno dvourozměrné pole celých čísel o velikosti 6x9. Zapište hodnotu 5 do všech prvků pole.

int M; // dvourozměrné pole celých čísel int i, j; pro (i=0; i<6; i++) for (j=0; j<9; j++) M[i][j] = 5;
11. Co je to nekonečná smyčka?

Nekonečná smyčka je smyčka, která nikdy nekončí.

Při programování cyklických procesů může programátor omylem napsat kód smyčky, který nikdy nekončí.

Navíc někdy chcete, aby smyčky obsahovaly speciální ukončovací kód pomocí příkazu break.

4. Příklady použití operátoru smyčky for Nekonečná smyčka s příkazem for:

pro (; ;) ( // sekvence operátorů C++. Prohlášení o výběru přepínače

JavaScript smyčky zajistit opakované provádění opakovaných výpočtů. Optimalizují proces kódování provedením stejného příkazu nebo bloku příkazů, které tvoří tělo smyčky, zadaný počet opakování (pomocí proměnné čítače) nebo když je zadaná podmínka pravdivá. Smyčky se opakují přes sekvenci hodnot. Zavolá se jednorázové provedení smyčky opakování.

Výkon smyčky je ovlivněn počtem iterací a počtem operací provedených v těle smyčky každé iterace.

V JavaScriptu existují následující operátory smyček:

1) pro se používá, když předem víte, kolikrát musíte něco udělat;
2) for...in se používá k procházení vlastností objektů;
3) while se používá, když nevíte, kolikrát musíte něco udělat;
4) do...while funguje podobně jako příkaz while. Rozdíl je v tom, že do...while vždy alespoň jednou vyhodnotí výraz uvnitř složených závorek, i když test podmínky vrátí hodnotu false .

Typy smyček v JavaScriptu, ovládání smyček

1. Pro smyčku

Cyklus for se používá k iteraci přes prvky polí nebo objektů podobných polí, jako jsou argumenty a HTMLCollection. Podmínka se kontroluje před každou iterací smyčky. Pokud je kontrola úspěšná, provede se kód uvnitř smyčky, jinak se kód uvnitř smyčky neprovede a program pokračuje od prvního řádku bezprostředně následujícího za smyčkou.

Další smyčka vytiskne řádek Hello, JavaScript! pětkrát.

Pro (var i = 0; i< 5; i++) { console.log(i + ": Hello, JavaScript!"); }
Rýže. 1. Výsledek spuštění smyčky for na konzole

1.1. Jak funguje smyčka for

Cyklus for se skládá ze tří různých operací:

Krok 1 inicializace var i = 0; — deklarace proměnné čítače, která bude kontrolována během provádění smyčky. Tato proměnná je inicializována hodnotou 0. Nejčastěji jako čítače smyček fungují proměnné pojmenované i, j a k.

Krok 2 kontrola stavu i< 5; — условное выражение, если оно возвращает true , тело цикла (инструкция в фигурных скобках) будет выполнено. В данном примере проверка условия идёт до тех пор, пока значение счётчика меньше 5 .

Krok 3 finální operace i++ - operace inkrementace čítače, zvyšuje hodnotu proměnné var i o jedna. Místo operace zvýšení lze také použít operaci snížení.

Na konci cyklu je proměnná var i uložena na 1. Další iterace cyklu se provede pro (var i = 1; i< 5; i++) { } . Условное выражение вычисляется снова, чтобы проверить, является ли значение счётчика i всё ещё меньше 5 . Если это так, операторы в теле цикла выполняются ещё раз. Завершающая операция снова увеличивает значение переменной на единицу. Шаги 2 и 3 повторяются до тех пор, пока условие i < 5; возвращает true .

1.2. Tisk hodnot pole

Chcete-li vytisknout hodnoty pole pomocí cyklu for, musíte použít vlastnost length pole. To vám pomůže určit počet prvků v poli a opakovat stejný počet opakování.

Skript níže zobrazí pět zpráv s názvy barev:

Var květiny = ["Růže", "Lilie", "Tulipán", "Jasmín", "Orchid"]; for (var i = 0; i< flowers.length; i++){ alert(flowers[i] + " - это цветок."); }

Pokud se hodnota vlastnosti length během cyklu nezmění, můžete ji uložit do lokální proměnné a poté tuto proměnnou použít v podmíněném výrazu. Tímto způsobem můžete zvýšit rychlost smyčky, protože hodnota vlastnosti length bude načtena pouze jednou za celou dobu trvání smyčky.

Var květiny = ["Růže", "Lilie", "Tulipán", "Jasmín", "Orchid"], len = květiny.délka; for (var i = 0; i

2. Smyčka pro...in

Smyčky For...in se používají k procházení vlastností objektů bez pole. Tento bypass se také nazývá převod. Při procházení se doporučuje použít metodu hasOwnProperty() k odfiltrování vlastností, které byly zděděny z prototypu.

Vytvořme například objekt pomocí objektového literálu.

Var user = ( jméno: "Alice", věk: 25, země: "Rusko" ); for (var prop in user) ( console.log(prop + ": " + user); )
Rýže. 2. Výsledek spuštění smyčky for...in na konzole

Předpokládejme, že ve scénáři před nebo po vytvoření uživatelského objektu byl prototyp objektu Object rozšířen o další metodu clone().

If (typeof Object.prototype.clone === "undefined") ( Object.prototype.clone = function () (); )

Protože řetězec dědičnosti prototypu je neustále kontrolován interpretem, všechny objekty automaticky získají přístup k nové metodě.

Rýže. 3. Výsledek opakování smyčky for...in na konzole

Aby se zabránilo detekci této metody při výčtu vlastností objektu uživatele, používá se metoda hasOwnProperty(), která odfiltruje vlastnosti prototypu.

Var user = ( jméno: "Alice", věk: 25, země: "Rusko" ); if (typeof Object.prototype.clone === "undefined") ( Object.prototype.clone = funkce () (); ) for (var prop v uživateli) ( if (user.hasOwnProperty(prop)) ( console.log (prop + ": " + uživatel);
Rýže. 4. Výsledek výpisu vlastností objektu pomocí metody hasOwnProperty().

3. Zatímco smyčka

Smyčka while je smyčka s předběžnou kontrolou podmíněného výrazu. Příkaz uvnitř smyčky (blok kódu ve složených závorkách) bude proveden, pokud se podmíněný výraz vyhodnotí jako true . Pokud první kontrola vrátí false , blok instrukcí se neprovede ani jednou.

Po dokončení opakování smyčky je podmíněný výraz znovu testován na pravdivost a proces se opakuje, dokud se výraz nevyhodnotí jako nepravda . V tomto případě bude program pokračovat od prvního řádku bezprostředně po smyčce (pokud existuje).

Tato smyčka zobrazí tabulku násobení pro číslo 3:

Var i = 1; var msg = ""; zatímco (tj< 10) { msg+= i + " x 3 = " + (i * 3) + "
"; i++; ) document.write(msg);
Rýže. 5. Výsledek provedení smyčky while

4. Smyčka Do...while

Loop do...while; kontroluje podmínku pokračování po provedení smyčky. Na rozdíl od cyklu while, v do...while; Tělo cyklu se provede alespoň jednou, protože podmínka se kontroluje na konci cyklu, nikoli na začátku. Tato smyčka se používá méně často než while , protože v praxi je situace, kdy je vyžadována alespoň jedna smyčka, vzácná.

Var vysledek = ""; var i = 0; do ( i += 1; výsledek += i + " "; ) zatímco (i< 5); document.write(result);
Rýže. 6. Výsledek provedení smyčky do...while

V následujícím příkladu jsou příkazy v rámci cyklu provedeny jednou, i když podmínka není pravdivá.

Var i = 10; do ( document.write(i + " "); i++; ) zatímco (i< 10);

5. Nekonečné smyčky

Když vytvoříte jakoukoli smyčku, můžete vytvořit nekonečnou smyčku, která nikdy neskončí. Taková smyčka by mohla potenciálně pokračovat, dokud bude počítač uživatele spuštěn. Většina moderních prohlížečů to dokáže detekovat a vyzvat uživatele, aby skript zastavil. Abyste se vyhnuli vytváření nekonečné smyčky, musíte si být jisti, že daná podmínka v určitém okamžiku vrátí hodnotu false. Například následující smyčka určuje podmínku, která nikdy nevrátí hodnotu false, protože i nikdy nebude menší než 10:

For (var i = 25; i > 10; i++) ( document.write("Tato věta bude platit navždy...
"); }

6. Vnořené smyčky

Smyčka uvnitř jiné smyčky se nazývá vnořený. Při každé iteraci smyčky se vnořená smyčka úplně provede. Vnořené smyčky lze vytvořit pomocí smyčky for a smyčky while.

For (počet var = 1; počet< 3; count++) { document.write(count + ". Строка цикла
"); for (var nestcount = 1; nestcount< 3; nestcount++) { document.write("Строка вложенного цикла
"); } }
Rýže. 7. Výsledek provedení vnořené smyčky for

7. Řízení cyklu

Cyklus lze ovládat pomocí příkazů break; a pokračovat; .

7.1. Přerušení obsluhy;

Přerušení obsluhy; ukončí provádění aktuální smyčky. Používá se ve výjimečných případech, kdy se smyčka z nějakého důvodu nemůže spustit, například když aplikace narazí na chybu. Nejčastěji operátor přestávky; je součástí konstrukce if.

Když se prohlášení zlomí; pokud je použit bez štítku, umožňuje opustit příkaz smyčky nebo přepínač. Následující příklad vytvoří čítač, jehož hodnoty by se měly pohybovat od 1 do 99, ale příkaz break přeruší smyčku po 14 iteracích.

Pro (var i = 1; i< 100; i++) { if (i == 15) { break; } document.write(i); document.write("
"); }
Rýže. 8. Výsledek operátoru přerušení ve smyčce for

Pro vnořené smyčky příkaz break; používá se s návěštím, která ukončuje pojmenovanou instrukci. Štítek vám umožňuje opustit jakýkoli blok kódu. Pojmenovaný příkaz může být jakýkoli příkaz mimo příkaz break; . Návěští může být název příkazu if nebo název bloku příkazů uzavřených ve složených závorkách pouze pro přiřazení štítku danému bloku. Mezi klíčovým slovem break; a název štítku neumožňuje nový řádek.

Vnější smyčka: for(var i = 0; i< 10; i++) { innerloop: for(var j = 0; j < 10; j++) { if (j >3) přestávka; // Ukončení nejvnitřnější smyčky if (i == 2) break innerloop; // Totéž if (i == 4) break externalloop; // Ukončení vnější smyčky document.write("i = " + i + " j = " + j + "
"); ) ) document.write("FINAL i = " + i + " j = " + j + "
");

7.2. Operátor pokračuje;

Operátor pokračuje; zastaví aktuální iteraci smyčky a spustí novou iteraci. V tomto případě se cyklus while vrátí přímo ke své podmínce a cyklus for nejprve vyhodnotí výraz inkrementace a poté se vrátí k podmínce.

Tento příklad zobrazí všechna sudá čísla:

Var i;<= 10; i++) { if (i % 2 !== 0) { continue; } document.write("
for(i = 1; i sudé číslo
= " + i);)

Rýže. 9. Výsledek operátoru continue ve smyčce for

Operátor pokračuje; lze také použít ve vnořených smyčkách se štítkem.
");
Outerloop: for (var i = 0; i "); for (var j = 0; j");

) ) document.write("Všechny smyčky dokončeny"+"

Rýže. 10. Výsledek operátoru pokračování se štítkem

The Do While... Loop ve VBA Excel, její syntaxe a popis jednotlivých komponent. Příklady použití smyčky Do While....

Smyčka Do While... ve VBA Excel je navržena tak, aby opakovala blok příkazů, dokud není splněna zadaná podmínka (vrací hodnotu True). Syntaxe této smyčky je podobná syntaxi , která se opakuje, dokud není splněna podmínka (vrací False).

Do While... Syntaxe smyčky

Syntaxe Do While... Loop přichází ve dvou variantách, které určují, kdy je podmínka testována.

Podmínka je zkontrolována před provedením příkazů:

Do While podmínka [ příkazy ] [ Exit Do ] [ příkazy ] Smyčka

Hranaté závorky označují volitelné atributy smyčky Do While....

Součásti Do While... Smyčka

*Pokud ve smyčce nepoužijete svůj vlastní kód, smysl použití smyčky se ztratí.

**Velmi užitečný operátor pro Do While... Loop, protože za určitých okolností může být nekonečný. Pokud toto riziko existuje, měli byste být schopni ukončit nekonečnou smyčku VBA pomocí příkazu Exit Do.

Příklady Do While... Smyčky

Nejjednodušší cykly

Do While... Smyčka s podmínkou do spustitelných příkazů:

Sub test1() Dim a As Byte Do Zatímco a< 10 a = a + 1 Loop MsgBox a End Sub

Do While... Opakujte s podmínkou za spustitelnými příkazy:

Sub test2() Dim a As Byte Proveďte a = a + 1 smyčka Zatímco a< 10 MsgBox a End Sub

V obou případech MsgBox zobrazí číslo 10. Když je hodnota proměnné A bude rovna 10, kontrolovaná podmínka vrátí hodnotu Falešný a smyčka bude zastavena.

Procházení řádky listu

Dvě veverky mají prohlubně umístěné proti sobě. Každá dutina obsahuje 100 kuželů. Ve volném čase házejí šišky do prohlubně naproti, ale ne vždy se trefí. Níže uvedená tabulka ukazuje počet kuželů vržených každou veverkou a kolik z nich zasáhlo cíl.

Na základě těchto údajů musíte zjistit, kolik šišek Veverka 1 zbyla v prohlubni. K tomu je třeba odečíst od 100 kuželů počet kuželů vržených Veverkou 1 a sečíst kužely, které do její prohlubně vhodil Veverka 2. Výpočty začínáme od druhého řádku (v prvním záhlaví) a v podmínce pro smyčka Do While... označujeme, že „první buňka aktuálního řádku není prázdná“. Tabulka musí začínat od první buňky listu „A1“ a pod ní musí být alespoň jeden řádek prázdný, přesněji první buňka tohoto řádku.

Dílčí test3() Dim i As Long, n As Long i = 2 n = 100 Do While Cells(i, 1)<>"" If Cells(i, 2) = "Squirrel 1" Then n = n - Cells(i, 3) Else n = n + Cells(i, 4) End If i = i + 1 Loop MsgBox n End Sub

Výsledek zobrazený v informační zprávě MsgBox bude 40. Tabulku můžete zkopírovat do listu aplikace Excel a experimentovat s kódem VBA.

Nekonečná smyčka a Exit Do

Příklad nekonečné smyčky:

Dílčí test4() Dim a As Byte Do Zatímco a< 10 a = a + 1 If a = 9 Then a = 0 End If Loop End Sub

Když spustíte tento postup, smyčka Do While... začne běžet donekonečna. Musel jsem zastavit nekonečné smyčky VBA v Excelu 2000 a Excelu 2016. V Excelu 2000 pomohla klávesová zkratka Ctrl+Break a v Excelu 2016, když zavřete editor VBA křížkem, zobrazí se okno:

Nemá smysl čekat, až program zareaguje, takže klikněte na „Restartovat program“ nebo „Zavřít program“.

Příklad použití operátora Konec Do:

Dílčí test5() Dim a As Byte, n As Long Do Zatímco a< 10 a = a + 1 n = n + 1 If a = 9 Then a = 0 End If If n = 1000 Then Exit Do End If Loop MsgBox n End Sub

Když smyčka dosáhne 1000 iterací, bude ukončena a informační zpráva MsgBox zobrazí, kolikrát byla opakována smyčka Do While... z tohoto příkladu.

Protože v do while se nejprve provede tělo smyčky a poté se zkontroluje podmínka pro pokračování smyčky. Kvůli této funkci se do while nazývá smyčka s postcondition. Pokud je tedy podmínka do while zjevně nepravdivá, pak se blok příkazů v těle cyklu do while provede alespoň jednou. V důsledku toho se do while liší od smyčky while ve struktuře. Pokud je v while nejprve zkontrolována podmínka pokračování smyčky a pokud je podmínka pravdivá, pak se tělo smyčky provede až poté. Cyklus do while funguje přesně naopak, nejprve se provede tělo cyklu a poté se zkontroluje podmínka, proto se tělo cyklu do while provede alespoň jednou.

// forma zápisu operátoru cyklu do while: do // začátek cyklu do while ( /*blok operátorů*/; ) while (/*podmínka pro provedení cyklu*/); // konec smyčky do while

Na začátku cyklu do while je napsáno vyhrazené slovo do následované složenými závorkami, které lze vynechat, pokud je v těle cyklu do while použit jeden příkaz. Po uzavírací složené závorce, která označuje konec těla smyčky do while, následuje podmínka smyčky do while, za kterou musíte vložit středník. Zvažte program se smyčkou do while, která provádí některé transakce s bankovním účtem.

// do_while.cpp: Definuje vstupní bod pro konzolovou aplikaci. #include "stdafx.h" #include #zahrnout pomocí jmenného prostoru std; int main(int argc, char* argv) ( srand(čas(0)); int balance = 8; // balance do // začátek smyčky do while ( cout<< "balance = " << balance << endl; // показать баланс int removal = rand() % 3; // переменная, для хранения вычитаемого значения cout << "removal = " << removal << endl; // показать вычитаемое значение balance -= removal; // управление условием } while (balance >0); // konec smyčky do while system("pause");

návrat 0; ) Vřádek 11 Proměnná zůstatek je deklarována, odpovídá za zůstatek prostředků na účtu. S 12. až 19. řádek . psaný do while smyčka Ve smyčce do while se provádějí všechny transakce se zůstatkovým účtem, konkrétně převod prostředků na nějaký jiný účet,. řádek 17Řádek 14 zobrazuje zůstatek finančních prostředků na účtu. Vřádek 15 řádek 19 je zapsána podmínka cyklu do while, jakmile se podmínka stane nepravdivou, program předá řízení dalšímu příkazu po cyklu do while, řádek 20. Výsledek programu je na obrázku 1.

Obrázek 1 Proveďte cyklus while v C++

Nejprve se zobrazí zůstatek a poté částka výběru, poté se znovu zobrazí zůstatek a tak dále, dokud na účtu nejsou žádné peníze. Poslední zobrazený řádek byl řádek s vybíranou částkou a poté cyklus dokončil svou práci. Přestože poslední zůstatek na účtu není vidět, můžete říci, že je roven 0.

Vzpomeňme na program „Hádej číslo“ ze sekce:. V této úloze by bylo správnější použít smyčku do while, kód se zmenší o dva řádky.

// ygadai2.cpp: Definuje vstupní bod pro konzolovou aplikaci. #include "stdafx.h" #include #zahrnout pomocí jmenného prostoru std; int main(int argc, char* argv) ( srand(čas(0)); int neznámé_číslo = 1 + rand() % 10; // číslo, které se má uhodnout int enter_number; // proměnná pro uložení zadaného čísla do ( cout<< "Enter unknown number : "; cin >> zadejte_číslo; // hádat ) while (zadejte_číslo != neznámé_číslo);<< "You win!!!\n"; system("pause"); return 0; }

cout

Vzhledem k tomu, že while je cyklus s předběžnou podmínkou, potřebovali jsme nejprve spočítat číslo, než začne while, a poté zkontrolovat pokračování cyklu while. V případě do while nemusíme číst číslo před začátkem cyklu, protože kontrola podmínky v do while nastává na konci cyklu. V závislosti na situaci se používá smyčka while nebo do while, vzájemně se doplňují.

Pro konsolidaci materiálu vyvineme další program, který vypočítá součet čísel v daném intervalu. // dowhile.cpp: Definuje vstupní bod pro konzolovou aplikaci. #include "stdafx.h" #include<< "Enter the first limit: "; // начальное значение из интервала int first_limit; cin >pomocí jmenného prostoru std; int main(int argc, char* argv) ( cout<< "Enter the second limit: "; // конечное значение из интервала int second_limit; cin >> první_mez;<= second_limit); // конец цикла do while cout << "sum = " << sum << endl; // печать суммы system("pause"); return 0; }

cout > druhý_limit; int součet = 0, počet = první_mez; do ( součet += počet; // zvýšení počtu součtů++; // zvýšení počáteční hodnoty ze zadaného intervalu ) while (počet Po spuštění programu musíte zadat limity intervalů, první a druhý. Poté se spustí smyčka do while, řádek 13.proměnná částka je určena k uložení nashromážděné částky,

řádek 15

Interval je uveden od -6 do 10 včetně, [-6;10]. Program sečte všechna celá čísla z daného intervalu. Součet se tvoří takto: -6 -5 -4 -3 -2 -1 + 0 +1 +2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 34. Tedy akce sčítání všechna celá čísla se provádí cyklicky čísla z uživatelem zadaného intervalu.




Nahoru