Dnes se naučíme používat cyklus s podmínkou na konci – do-while, cyklus s podmínkou na začátku – while a příkaz switch/select.
do-while/do-loop-while
asto se stává, že nevíme, kolikrát má cyklus proběhnout. V takovém případě nám poslouží cyklus s podmínkou na konci, do-while.
C#
do{
příkazy v cyklu
}while(podmínka)
VB
Do
příkazy v cyklu
Loop While podmínka
Příkazy v cyklu se provádí tak dlouho, dokud podmínka nemá hodnotu TRUE.
Příklad
Jednoduchý příklad vypočítá, kolik má rok týdnů:
C#
void Page_Load(){
int tydenDni = 7;
int rokDni = 365;
int rokTydnu = 0;
do{
rokTydnu++;
tydenDni = tydenDni+7;
Response.Write("Rok nemá "+rokTydnu+" týdnů.
");
}while(tydenDni < rokDni);
Response.Write("Rok ma "+rokTydnu+" tydnu!
");
}
VB
Sub Page_Load
Dim tydenDni As Integer = 7
Dim rokDni As Integer = 365
Dim rokTydnu As Integer = 0
do
rokTydnu = rokTydnu+1
tydenDni = tydenDni+7
Response.Write("Rok nemá "+rokTydnu.ToString()+" týdnů.
")
Loop while tydenDni < rokDni
Response.Write("Rok ma "+rokTydnu.ToString()+" tydnu!
")
End Sub
cyklus while
Problém cyklu do-while je, že podmínka se testuje až na konci, takže cyklus musí proběhnout alespoň jednou, i když není potřeba. Proto tu je cyklus s podmínkou na začátku – while.
C#
while(podminka){
příkazy v cyklu..
}
VB
While podminka
Příkazy v cyklu..
End While
příklad
C#
void Page_Load(){
int tydenDni = 7;
int rokDni = 365;
int rokTydnu = 0;
while(tydenDni < rokDni){
rokTydnu++;
tydenDni = tydenDni+7;
Response.Write("Rok nemá "+rokTydnu+" týdnů.
");
}
Response.Write("Rok ma "+rokTydnu+" tydnu!
");
}
VB
Sub Page_Load
Dim tydenDni As Integer = 7
Dim rokDni As Integer = 365
Dim rokTydnu As Integer = 0
while tydenDni < rokDni
rokTydnu = rokTydnu+1
tydenDni = tydenDni+7
Response.Write("Rok nemá "+rokTydnu.ToString()+" týdnů.
")
End While
Response.Write("Rok ma "+rokTydnu.ToString()+" tydnu!
")
End Sub
příkaz switch/select
Jestli si vzpomínáte na minulou lekci, kdy jsme u C# nemohli použít ElseIf, ale použili jsme vnořování podmínek. Nebylo to zrovno dvakrát přehledné. Existuje možnost, jak se ubránit vnořování podmínek, a to je větvení pomocí příkazu switch (popř. u VB.NET select).
C#
switch(promenna){
case hodnota: prikaz při dané hodnotě;
break;
case hodnota: prikaz při dané hodnotě;
break;
default: příkaz, který se provede, když neplatí ani jedna hodnota
break;
}
Příkaz break kódu říká, že má vyskočit z cyklu. Kdybychom ho neuvedli, vypsaly by se všechny varianty od námi zvolené hodnoty.
VB
Select promenna
Case hodnota
Příkazy při dané hodnotě
Case hodnota
Příkazy při dané hodnotě
Case Else
příkaz, který se provede, když neplatí ani jedna hodnota
End Select
Příkaz switch/select si ukážeme na jednoduchém příkladu:
C#
void Page_Load(){
int nalada = 1;
switch(nalada){
case 1: Response.Write("Mám se skvěle!");
break;
case 2: Response.Write("Mám se dobře!");
break;
case 3: Response.Write("Ujde to!");
break;
case 4: Response.Write("Nic moc!");
break;
case 5: Response.Write("Mám se strašně!");
break;
default: Response.Write("Špatná hodnota!");
break;
}
}
Pokud jste něco z příkladu nepochopili, zkuste změnit hodnotu proměnné nalada.
To samé ve VB.NET:
Sub Page_Load
Dim nalada As Integer = 1
Select nalada
case 1
Response.Write("Mám se skvěle!")
case 2
Response.Write("Mám se dobře!")
case 3
Response.Write("Ujde to!")
case 4
Response.Write("Nic moc!")
case 5
Response.Write("Mám se strašně!")
case else
Response.Write("Špatná hodnota!")
End Select
End Sub
A to je pro dnešek vše, příště si ukážeme, jak používat pole.