10. 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, "Windows-1250");
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, "Windows-1250"); 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 9.-10. 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é 9x (2.62 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Java