11. diel - Cyklus while v Jave
V minulej lekcii, Cyklus for v Jave, sme si v našom Java seriáli ukázali prácu s
for cyklom.
V dnešnom Java tutoriále sa naučíme používať cyklus while
a potom vylepšíme našu kalkulačku.
Cyklus while
Cyklus while funguje trochu inak ako cyklus for.
Jednoducho opakuje príkazy v bloku, pokiaľ platí podmienka. Syntax cyklu je
nasledovná:
while (condition) { // commands }
Pokiaľ vám napadá, že je možné cez cyklus while urobiť aj
cyklus for, máte pravdu
Cyklus for je vlastne špeciálny
prípad cyklu while. Cyklus while sa ale
používa na trochu iné veci, často máme v jeho podmienke napr.
metódu vracajúcu logickú hodnotu true /
false.
Príklady použitia cyklu
Poďme si urobiť niekoľko jednoduchých príkladov na precvičenie cyklu
while.
Rad
Pomocou cyklu while by sme urobili číselný rad
nasledovne:
{JAVA_CONSOLE}
int i = 1;
while (i <= 10) {
System.out.print(i + " ");
i++;
}
{/JAVA_CONSOLE}
To ale nie je ideálne použitie cyklu
while.
Kalkulačka
Ako ďalšiu si vezmeme našu kalkulačku z minulých lekcií a opäť ju
trochu vylepšíme, konkrétne o možnosť zadať viac príkladov. Program teda
hneď neskončí, ale spýta sa používateľa, či si praje spočítať
ďalší príklad. Pripomeňme si pôvodnú verziu kódu (je to tá verzia s
konštrukciou switch, ale pokojne použite aj tú bez nej,
záleží na vás):
{JAVA_CONSOLE}
Scanner scanner = new Scanner(System.in);
System.out.println("Welcome to our calculator");
System.out.println("Enter the first number:");
double a = Double.parseDouble(scanner.nextLine());
System.out.println("Enter the second number:");
double b = Double.parseDouble(scanner.nextLine());
System.out.println("Choose one of the following operations:");
System.out.println("1 - addition");
System.out.println("2 - subtraction");
System.out.println("3 - multiplication");
System.out.println("4 - division");
int option = Integer.parseInt(scanner.nextLine());
double result = 0;
switch (option) {
case 1:
result = a + b;
break;
case 2:
result = a - b;
break;
case 3:
result = a * b;
break;
case 4:
result = a / b;
break;
}
if ((option > 0) && (option < 5)) {
System.out.println("Result: " + result);
} else {
System.out.println("Invalid option");
}
System.out.println("Thank you for using our calculator.");
{/JAVA_CONSOLE}
Teraz budeme chcieť celý kód vložiť do cyklu while. Našou
podmienkou bude, že používateľ zadá yes, budeme teda
kontrolovať obsah premennej goOn. Spočiatku bude táto premenná
nastavená na hodnotu yes, aby sa program vôbec spustil, potom do
premennej necháme načítať používateľovu voľbu.
S takouto úpravou nám pomôže Copilot. Zadáme mu napríklad nasledujúci prompt: "Kód kalkulačky sa spustí len raz. Pridaj preto celý kód do bloku while. Kým používateľ odpovedá na otázku, či si praje pokračovať "yes", kód bude ďalej pokračovať.".
Výstup od Copilota bude vyzerať podobne ako nižšie:
Scanner scanner = new Scanner(System.in); System.out.println("Welcome to our calculator"); String goOn = "yes"; while (goOn.equals("yes")) { System.out.println("Enter the first number:"); double a = Double.parseDouble(scanner.nextLine()); System.out.println("Enter the second number:"); double b = Double.parseDouble(scanner.nextLine()); System.out.println("Choose one of the following operations:"); System.out.println("1 - addition"); System.out.println("2 - subtraction"); System.out.println("3 - multiplication"); System.out.println("4 - division"); int option = Integer.parseInt(scanner.nextLine()); double result = 0; switch (option) { case 1: result = a + b; break; case 2: result = a - b; break; case 3: result = a * b; break; case 4: result = a / b; break; } if ((option > 0) && (option < 5)) { System.out.println("Result: " + result); } else { System.out.println("Invalid option"); } System.out.println("Would you like to make another calculation? [yes/no]"); goOn = scanner.nextLine(); } System.out.println("Thank you for using our calculator.");
Výstup AI sa môže líšiť. Názvy premenných môžu byť iné, podmienka cyklu môže byť napísaná inak alebo sa môže mierne líšiť celá štruktúra programu. To je v poriadku. Dôležité je, aby program fungoval správne, cyklus sa opakoval podľa vstupu používateľa a my sme rozumeli tomu, čo kód robí.
Výstup programu:
Konzolová aplikácia
Welcome to our calculator
Enter the first number:
12
Enter the second number:
128
Choose one of the following operations:
1 - addition
2 - subtraction
3 - multiplication
4 - division
1
Result: 140
Would you like to make another calculation? [yes/no]
yes
Enter the first number:
-10.5
Enter the second number:
10.5
Choose one of the following operations:
1 - addition
2 - subtraction
3 - multiplication
4 - division
1
Result: 0
Would you like to make another calculation? [yes/no]
no
Thank you for using our calculator.
Našu aplikáciu je teraz možné používať viackrát a je už takmer
hotová. Už toho vieme celkom dosť, začína to byť zábava, však? 
Zhrnutie lekcie
Cyklus while opakuje príkazy tak dlho, kým platí zadaná
podmienka. Hodí sa hlavne vtedy, keď vopred nevieme, koľkokrát sa má
určitá časť programu opakovať, napríklad keď program pokračuje podľa
odpovede používateľa. V ukážke sa pomocou cyklu while
vylepšila kalkulačka, aby po výpočte neskončila hneď, ale spýtala sa, či
má pokračovať. Kým používateľ zadáva yes, kalkulačka
počíta ďalšie príklady. Keď zadá niečo iné, program skončí.
V nasledujúcom cvičení, Riešené úlohy k 10.-11. lekcii Javy, si precvičíme nadobudnuté skúsenosti z predchádzajúcich lekcií.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 55x (6.76 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Java

David sa informačné technológie naučil na