Syntax & common stuff Flashcards
stary switch - syntax + chovani (break, default (3))
switch (x) {
case 1: case 2: logic(); logic();
case 3: logic(); break();
default: logic();
}
- po matchnute vetvi se aplikuji vsechny! pokud neni break
- default se pouzije, pokud se nematchne; neni povinna; nemusi byt posledni
switch novy (bez navratu) - syntax + chovani (break)
switch(x) {
case 1,2 -> logic();
case 3 -> { logic(); logic(); }
default -> logic();
}
break se nepise, je automaticky za kazdou vetvi
switch expression - syntax
int a = switch(x) {
case 1, 2: 10;
case 3: { logic(); yield logic(); }
default: yield 20;
}
while - syntax (2)
while (test) { action(); }
do { action(); } while(test)
for syntax:
vice promennych
vzdy true
foreach
foreach z matice
for (int i = 0, j=1; i<5 && j<10; i++, j++) {}
for (;;) {}
for (String str: list) { sout(str); }
for (char[] row: matrix) {}
label, break, continue
MyLabel:
break; - ukonci loop
break MyLabel; - vyskoci z celeho obsahu label
continue; - pokracuje dalsim cyklem
continue MyLabel; - skoci na label
Jak se vola interpreter
Co neni dovoleno (6)
jshell z cmd
nepovoleno: package, static, final, break, continue, return
jshell - otevri file.txt, skonci
/open file.txt
/exit
Co musi obsahovat casy switche
Musi pokryvat vsechny moznosti, nebo mit default
Jaka podminka plati pro razeni typu v casech
Priklad CharSequence, String
Nesmi byt superclass pred jeji subclass
case CharSequence c
case String s
je spatne, protoze String je potomek CharSequence
String.isEmpty()
prazdny string nebo whitespaces only
StringBuilder vs StringBuffer
StringBuffer je thread save, StringBuilder ne
StringBuilder je rychlejsi, pokud potrebuju 1 vlakno
Co se stane?
switch (x) {
case Character c : action();
case String s : action();
default : action();
}
Compilation error
Protoze telo druheho casu ma s i c
Chyba napr. i pro Character+Long
Lze vyresit breakama
void method() {
int x;
sout(x);
}
co se stane?
compilation error
lokalni promenna se musi pred pouzitim inicializovat
Smi cases obsahovat enum?
Jejich values (int) ano, ale samotny enum ne