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 vložíme takmer celý kód 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
nej necháme načítať voľbu používateľa:
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šimnite si, že premenné dátového typu String porovnávame
pomocou metódy equals(), nie pomocou operátora == !
Je to dané tým, že String je referenčný dátový
typ. Metóda equals() teda v našom prípade zistí, či
sa premenná goOn rovná textovému reťazcu
yes.
Podmienka ("Text" == "Text") je zle, musíme
napísať ("Text".equals("Text")). V kapitole o objektovo
orientovanom programovaní pochopíme prečo.
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? 
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é 52x (6.76 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Java

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