Diskuze: Do while cyklus
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Ten cyklus je plne v poriadku, naozaj je nekonečný. Len si musíš krok po kroku skúsiť uvedomiť prečo. A ak si zo nevieš prebrať, nevadí, proste si zapämataj, že takto to nefunguje. Keď tak, radšej si urob funkciu v ktorej čítaš vstup a podmienku, že ak načítaný znak nie je B, alebo D, tak nech tá funkcia rekurzívne volá sama seba.
Podmínka v závorce je vždycky splněná. Když platí volba == "B", tak
platí volba != "D" a naopak.
Pokud se cyklus má ukončit při zadání "B" nebo "D", tak podmínka bude
while (!(volba == "B" || volba == "D"))
PS: A ak chceš silou mocou použiť cyklus, tak skôr takto:
string volba = "";
while (volba = Console.ReadLine()) {
if (volba = "B" || volba = "D") break;
Ale neskúšal som to. Ja ani neviem pre aký jazyk sa to pýtaš, toto je doslova generický kód. Ikeď vyzerá to ako Java...
Problém je už vyřešen. Přesto bych rád tazateli ukázal "fígl" pro příště.
string volba="";
bool pokracovat,pokracovatB,pokracovatD;
do
{
volba = Console.ReadLine();
pokracovatB = volba != "B";
pokracovatD = volba != "D";
pokracovat = pokracovatB || pokracovatD;
}
while (pokracovat);
Pokud budeš kód krokovat/debugovat, jasně se ukáže problém ve špatně zapsané podmínce.
Zobrazeno 6 zpráv z 6.