Programování v jazyku Java 3.díl – Podmínky

Nyní bychom si řekli něco o podmínkách, bez kterých se programování neobejde a konečně můžeme začít dělat něco co je celkem zajímavé.
Dále si řekneme něco málo a vypisování, protože jinak nic neuvidíme tedy pokud nevidíme do ramek jak si tam přehazují jednotlivé bity ;-)

Podmínky

Syntaxe podmínky

Syntaxe podmínek je docela jednoduchá napíšete klíčové slovo if, a za to do závorky dáte podmínku pak napíšete { příkaz (co se má vykonat) a }

strukturově
if(podmínka){
   příkaz(y);
}
nyní jednoduchý příklad
if(a==1){
    System.out.println("a je jedna");
    a++;
    System.out.println("a++ je:" +a);
}

Zkrácený zápis

Pokud chceme napsat, že jedna proměnná je menší a zároveň jiná proměnná je větší než nějaká třetí, tak to můžeme napsat dvěmi způsoby
delší

if(ac){
        System.out.println("je to tak a je menší jak 5 a b je větší jak c");
    }
}

a nebo kratčeji

if(ac){
        System.out.println("je to tak a je menší jak 5 a b je větší jak c");
}

další dobrá věc je, že pokud chceme napsat že něco se má provést pokud a je větší jak 5 nebo b je větší jak 3, tak to můžeme napsat taktéž dvěma způsoby
delší

 if(a>5){
    System.out.println("a>5 nebo b>3);
}else{
    if(b>3){
        System.out.println("a>5 nebo b>3);
    }
}

kratší

 if(a>5 || b>3){
    System.out.println("a>5 nebo b>3);
}

klíčové slovo else znamená, že to mezi { } za else se udělá jen pokud první podmínka nebude splněna

Standardní výstup

Co to vlastně je?

Standardní výstup je výstup do konzole, což je to v čem se spouští i program (pokud nepoužíváte BlueJ) a v BlueJ tam je taktéž nějaké okénko, do kterého se to připisuje… je dobré ho před každým spuštěním programu vymazat, nebo si zapamatovat co bylo psáno naposledy, protože se tam připisuje, ale nemaže se předchozí alespoň co já si pamatuji.

Jak se používá?

Nebudu vás zatěžovat tím proč je to zrovna System.out.print(); nebo System.out.println(); , ale zkuste si to zapamatovat… časem se naučíme ještě jeden způsob, trošku složitější, ale zato nám nabídne více možností.

Dá se použít buď tak, že mezi závorky napíšeme něco v uvozovkách, to nám pak vypíše přesně to, co jsme napsali.

System.out.println("Ahoj světe"); // vypíše Ahoj světe

Pokud bychom chtěli vypsat popisek, a nějakou proměnnou, tak to uděláme následovně, napíšeme ten text do uvozovek, ukončíme uvozovky a napíšeme + s názvem proměnné.

System.out.println("Ahoj světe po:"+pocet); /* vypíše Ahoj světe po: a číslo uložené v proměnné pocet*/

Takto se dá řetězit i text v uvozovkách (užívá se pro větší přehlednost a lepší orientaci v textu (při přesahu zobrazované stránky např.)).

System.out.println("Ahoj "+
"světě"); // vypíše Ahoj světe

Kde ho použijeme?

Použijeme ho všude, kde se chceme my informovat (takováto místa později smažeme) a nebo kde chceme informovat uživatele naší aplikace co se tam momentálně děje.

Příklad:  Budu programovat součet, ale na standardní výstup se mi to vypíše špatně, tak budu chtět zjisti jestli ty proměnné jsou opravdu takové, které myslím, že jsou.

public static void main(String [] args){
    int a=5;
    int b=6;

    System.out.println("a + b = " + a+b); // toto mi vypíše a+b = 56
}

proto si řeknu jak je to možné a otestuji si kolik je a a kolik je b

public static void main(String [] args){
    int a=5;
    int b=6;
    System.out.println("a="+a+" b="+b); // vypíše a=5 b=6 ---- tento bychom později vymazali
    System.out.println("a + b = " + a+b); /*  vypíše a+b = 56 ---- tento bychom později vymazali a nebo ten následující, ale to by nám museli fungovat (viz. níže)*/

    int vysledek=a+b;
    System.out.println("a + b = " + vysledek); // vypíše a+b = 11
}

Možná to není úplně nejlepší příklad, ale snad jste pochopili co jsem tím měl na mysli jak se to dá testovat…

Abychom si nemuseli zavádět pomocnou „vysledek“, ale fungovalo nám to taky správně, tak bychom museli:

System.out.println("a + b = "+ a+b);
//přepsat na
System.out.println("a + b = "+ (a+b));

Protože jinak to překladač pochopí tak, že má napsat a + b = a pak připojit hodnotu a dále připojit hodnotu b, kdežto pokud to dáme do závorky, tak překladači řekneme, že nejdříve má vypočítat tu závorku a až pak to vypsat.

Závěr

Příště si napíšeme jak se dá používat i standardní vstup (tedy zadávání z klávesnice) a s tím se pak už dají dělat nějaké jednodužší aplikace a celkem již použitelné

Cvičení

  1. Pokuste se napsat program, který vypíše bez mezivýsledků součet tří cifer, zkuste reálných i celých čísel
  2. Napište program, který vypíše nejvyšší číslo (použíjte znalosti z dílu 2, které vám radilo jak nepsat příliš dlouhé podmínky
      Cvičení mi můžete poslat ke korektůře (pokud chcete) na email vojtech.sejkora@seznam.cz do předmětu napište Cvičení 3. číslo programu(1 nebo 2) a pak vložte text souboru nebo přiložte soubor a já se vám co nejdříve budu moci pokusím napsat co jste tam udělali špatně nebo jak to ještě zjednodušit případně vám napíši že nevím jak to napsat stručněji:)

O Vojtěch Sejkora

Ohledně JAVY se zajímám od 8.třídy základní školu, tedy už 4roky, za tu dobu jsme nabral určitou praxi a už jsem i vysvětloval javu svým spolužákům ve škole. Dále jsem se začal učit programovat (věci ohledně složitostí, algoritmů apod.). Krom programování mě baví tancování, hraní na kytaru, pokec s dobrýma lidma a dobrá muzika:)