Statistika testů
K této kapitole
Zodpovězených: 0
Správně: 0
Špatně: 0
Úspěšnost: 0%
Nezodpovězených: 0

Pro testování a jeho statistické vyhodnocení je nutné se přihlásit.


Celkem
Zodpovězených: 0
Správně: 0
Špatně: 0
Úspěšnost: 0%
Nezodpovězených: 0

Cyklus while
Zde si ukážeme, jak můžeme provádět příkazy opakovaně, přičemž podmínka pro další opakování je umístěna na začátku smyčky.
RNDr. Dušan Kovář, Ph.D.
27. listopadu 2005
Počet návštěv: 19471

Cyklus while nemá definován čítač, jako příkaz for. Závisí pouze na podmínce, která se vyhodnotí vždy na začátku iterace, což můžeme demonstrovat na vývojovém diagramu (diagramu činností) příkazu while:


Diagram činností příkazu while

Syntaxe příkazu while vypadá následovně:

while (podmínka)
{
   tělo cyklu
}

Demonstrujme funkci příkazu while na programu, který po uživateli "pochtívá" heslo, dokud ho nezadá správně:

// Požaduje od uživatele heslo, dokud nezadá správné.
using System;

namespace CyklusWhile.Priklad1
{
   class VstupniBodProgramu
   {
      static void Main()
      {
         string spravneHeslo = "Karel";
         
         Console.Write("Zadejte heslo: ");
         string zadaneHeslo = Console.ReadLine();

         while (zadaneHeslo != spravneHeslo)
         {
            Console.Write("Zadejte heslo: ");
            zadaneHeslo = Console.ReadLine();
         }

         Console.WriteLine("Vítejte v systému!");

         Console.ReadLine();
      }
   }
}

Je důležité si uvědomit, že někde uvnitř programu musí dojít ke změně hodnot, které se vyskytují ve výrazu podmínky. Podmínka by se měla někdy vyhodnotit jako false, aby se příkaz ukončil. V tomto příkladu se testuje zadané heslo. Pokud je heslo na začátku zadané špatně, skočí se do těla cyklu, kde je heslo opět požadováno - všimněte si mírné redundance kódu, kterou v tomto případě řeší užití cyklu do while. Pak se jde opět na podmínku atd., dokud se podmínka nevyhodnotí jako false. V tom okamžiku příkaz while končí a následuje další příkaz za příkazem while.



Úkoly ke kapitole "Cyklus while"

Pomocí cyklu while vypište čísla od 1 do 100.

Přepište následující cyklus for na cyklus while.

         for (int i = 100; i >= 0; i -= 5)
         {
            Console.Write(i);
            if (i > 0)
               Console.Write(", ");
         }

Napište program, ve kterém uživatel zadá celé nezáporné číslo a vypíše se jeho faktorial.

Napište program, ve kterém uživatel může opakovaně zadávat celé nezáporné číslo a bude mu vypočítán faktorial, dokud nezadá k nebo K. Opět předpokládejte správné vstupy.

Napište program, ve kterém uživatel zadá počet členů Taylorovy řady pro výpočet Eulerova čísla (potřebné informace najděte na Internetu). Program vypíše, jakou hodnotu Eulerova čísla získal součtem daného počtu členů.

Hodnocení kapitoly "Cyklus while"
Oslovila vás tato kapitola?
Ohodnoťte její obsah počtem bodů od 1 (nejhorší) do 10 (nejlepší):
Průměrné hodnocení: 9,857142
Celkem hodnotilo 7 osob.
Jednotlivá hodnocení: 
Diskuze ke kapitole "Cyklus while"

Napadá vás zajímavá otázka související s touto kapitolou?

Přidejte do diskuze
Zatím diskutovaná témata:

koucourek krteček [666 Cermat, 10.11.2016 13:04:43 ]  
:*
chyba [ShaggY, 4.1.2011 15:14:19 ]  
Na řádku

while (zadaneHeslo != spravneHeslo) je chyba, znaky != (nerovná se) , rovná se je == . :)
cyklus while [jirka, 20.10.2010 17:04:46 ]  
Potřebuju udělat násobky čísel

Vyhledávání
Související kapitoly
Aritmetické operátory
Operátory pro vytváření číselných výrazů
Booleovské operátory
Operátory pro vytváření booleovských výrazů
Booleovský typ
Datový typ pro reprezentaci booleovské (dvouhodnotové) logiky.
Cyklus do while
V této kapitole se seznámíte s příkazem. který provádí blok příkazů opakovaně, přičemž řídící podmínka pro další opakování je umístěna na konci smyčky.
Cyklus for
Ukážeme si, jak lze blok příkazů provádět opakovaně v závislosti na hodnotě proměnné zvané čítač.
Pole
Datový typ pro uložení více hodnot stejného datového typu s přístupem pomocí indexu.
Příkaz break
Předvedeme si příkaz, který umožní násilné ukončení opakování bloku příkazů v cyklu.
Příkaz continue
Seznámíte se s příkazem, pomocí něhož můžete násilně ukončit aktuální iteraci cyklu a pokračovat následující.
Příkaz if
Ukážeme si, jak lze blok kódu provést pouze při vyplnění určité podmínky.
Příkaz if/else
Ukážeme si, jak lze v případě, že je splněna určitá podmínka, provést jeden blok kódu a v opačném případě jiný blok.
Přečtěte si knihu
C# Programujeme profesionálně
Robinson S., Allen K. S., Cornes O., Glynn J., Greenvoss Z., Harvey B., Nagel Ch. a další
Computer Press 2003

Programování v Microsoft .NET - Webové aplikace
Prosise, Jeff
Computer Press 2002

Programování Microsoft Windows v jazyce C#
Charles Petzold
Computer Press 2003
Programovací jazyk C# | Programování Windows Forms | Architektura .NET | ASP.NET | Dodatky | Diskuze
RNDr. Dušan Kovář, Ph.D.
Gymnázium Olomouc-Hejčín