Do příště
- nainstalujte si Eclipse IDE
choco install eclipse
Datový typ boolean
- umí 2 hodnoty -
true,false - výsledky porovnání atd.
boolean jeSude = (cislo % 2) == 0;
// funkčně stejné jako if ((cislo % 2) == 0) {
if (jeSude) { // totéž co if (jeSude == true)
...
}
if (!jeSude) { // totéž co if (jeSude == false)
...
}
while cyklus
- pokud nevíme dopředu počet opakování
public class WhileCyklus {
public static void main(String[] args) {
int i = Integer.parseInt(args[0]);
while (i > 0) {
System.out.printf("%d\n", i);
i--;
}
}
}
java.util.Scanner: načítání vstupu z klávesnice
- (zatím z klávesnice, později uvidíme, že lze použít i nad soubory)
- pro zkušenější: dokumentace Scanneru
public class Suma {
public static void main(String[] args) {
int suma = 0;
/* Tohle je zatím trochu magie, vysvětlím později ;-). */
java.util.Scanner sc = new java.util.Scanner(System.in);
while (sc.hasNextInt()) {
suma += sc.nextInt();
}
System.out.printf("Soucet zadanych cisel je %d.\n", suma);
}
}
- funkce
hasNextInt()nad proměnnou typuScannerřekne, je-li na vstupu další číslo - a funkce
nextInt()nám ho řekne - vstup ukončíme stiskem
Ctrl+Zna samostatné řádce (opět nutné potvrdit stiskem Enteru) (na Unixu stačíCtrl+Dkdekoliv) - dokud není celý řádek odeslán (Enterem), je možné ho upravovat (resp. jen mazat)
Předčasná ukončení cyklů
- příkaz
breakihned ukončí cyklus, skočí za jeho uzavírací závorku - příkaz
continuepokračuje další obrátkou cyklu
Následující kus kód by bez break a continue byl náročnější na pochopení.
int suma = 0;
int pocet = 0;
while (scanner.hasNextInt()) {
int cislo = scanner.nextInt();
if (cislo == 0) {
// Uživatel zadal 0 ==> končíme
break;
}
if (cislo < 0) {
// Záporná čísla ignorujeme.
System.out.printf("Preskakuji %d\n", cislo);
continue;
}
System.out.printf("Zadane kladne cislo je %d.\n", cislo);
suma += cislo;
pocet++;
}
Protože je nutné konstruovat složité (a vnořené) podmínky.
int suma = 0;
int pocet = 0;
boolean pokracujeme = true;
while (pokracujeme && scanner.hasNextInt()) {
int cislo = scanner.nextInt();
if (cislo == 0) {
// Uživatel zadal 0 ==> končíme
pokracujeme = false;
} else {
if (cislo < 0) {
// Záporná čísla ignorujeme.
System.out.printf("Preskakuji %d\n", cislo);
} else {
System.out.printf("Zadane kladne cislo je %d.\n", cislo);
suma += cislo;
pocet++;
}
}
}
