Programovßnφ v jazyce JavaKurz programovßnφ v Jav∞ - 4. dφl |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
┌vodem | Kurz programovßnφ v Jav∞ | Soubory ke sta₧enφ | Otßzky a odpov∞di |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
┌vod Vφtejte u dalÜφho dφlu o zßkladech programovßnφ v Jav∞. Dnes budeme probφrat operßtory. Operßtory Operßtory slou₧φ k r∙zn²m operacφm. UrΦujφ jakΘ operace se provedou s operandy. Kdybychom Üli vφce do hloubky, tak vlastn∞ °φkajφ p°ekladaΦi jakΘ operace chcete s hodnotami provΘst. Existujφ 6 skupin operßtor∙: aritmetickΘ, logickΘ, relaΦnφ, bitovΘ, p°i°azovacφ a ternßrnφ. AritmetickΘ operßtory Java definuje 7 aritmetick²ch operßtor∙, jejich seznam najdete v nßsledujφcφ tabulce.
VÜechny lze pou₧φt na ΦφselnΘ datovΘ typy, celoΦφselnΘ i reßlnΘ a znakov² typ char. VÜechny takΘ majφ stejn² v²znam jako v matematice. Operßtor % funguje tak, ₧e 5 % 2 = 1, 5 / 2 = 2 a zbytek je 1, kter² nßm operßtor % vrßtφ. Pokud pou₧ijeme operßtor / na celoΦφselnΘ typy, nem∙₧eme poΦφtat s desetinnou Φßstφ, v²sledek m∙₧e b²t nep°esn², 20 / 6 = 3, ale 20.0 / 6.0 = 3.33. V²znam operßtoru ++ a -- si vysv∞tlφme na nßsledujφcφch p°φkladech. Operßtor ++ p°iΦte jedniΦku k ΦφselnΘ prom∞nnΘ a operßtor -- odeΦte jedniΦku.
Oba lze zapsat jako prefix (p°ed operand), nebo jako postfix (za operand, stejn∞ jako v p°edchozφ tabulce). Oba zp∙soby jsou vysv∞tleny v nßsledujφcφ tabulce.
To znamenß, ₧e prefixov² tvar hodnotu nejd°φve zv∞tÜφ a potom pou₧ije, ale postfixov² p°esn∞ naopak, nejd°φve pou₧ije p∙vodnφ hodnotu a potom zv∞tÜφ. Oba tvary majφ svΘ vyu₧itφ. LogickΘ operßtory LogickΘ operßtory se pou₧φvajφ k operacφm s prom∞nn²mi typu boolean. A jejich v²sledkem je takΘ typ boolean.
Operßroty && a || fungujφ stejn∞ jako & a | s tφm rozdφlem, ₧e p°i logickΘ podmφnkovΘ operaci se druh² operand vyhodnocuje jen tehdy, pokud je pot°eba. Nßzornß ukßzka je v programu na konci tohoto dφlu. RelaΦnφ operßtory RelaΦnφ operßtory porovnßvajφ hodnoty a jejich v²sledkem je hodnota typu boolean. Proto se Φasto pou₧φvajφ ve spojenφ s logick²mi operßtory, kterΘ pracujφ s hodotami typu boolean. Operßtory == a != lze pou₧φt na vÜechny typy v Jav∞ vΦetn∞ objektov²ch typ∙, ale ostatnφ jen na typy co majφ vnφt°nφ uspo°ßdßnφ. Tak₧e je m∙₧ete pou₧φt na vÜechny jednoduchΘ ΦφselnΘ typy (vΦetnΘ typu char, co₧ je vlastnΘ normßlnφ celoΦφseln² typ) a i n∞kterΘ objekty, ale nem∙₧ete s nimi porovnßvat typ boolean.
Ternßrnφ operßtor Ternßrnφ se jmenuje proto, ₧e pou₧φvß t°i operandy.
Podmφnka musφ vracet typ boolean a pokud je v²sledek true, tak se provede v²raz1, jinak v²raz2. V naÜem p°φklad∞ pokud by a se rovnalo 10, tak by se i p°i°adila hodnota 5, jinak hodnota 7. Oba v²razy v²raz1 i v²raz2 musejφ b²t stejnΘho typu. Program vyu₧φvajφcφ operßtory V tomto programu pou₧ijeme jeden °φdicφ p°φkaz, kter² bude podrobn∞ji rozebrßn v n∞kterΘm z nßsledujφm dφle, abychom mohli demonstrovat vÜechny operßtory. Je to °φdφcφ p°φkaz if a jeho nejjednoduÜÜφ syntaxe je:
Na prvnφm je deklarace t°φdy s nßzvem Operatory a je definovßna jako public (ve°ejnß). public je specifikßtor p°φstupu a t∞mi se budeme zab²vat pozd∞ji. Proto₧e je to deklarace t°φdy, proto klφΦovΘ slovo class. Za identifikßtorem nßsleduje levß slo₧enß zßvorka, kterou t°φda zaΦφnß a konΦφ pravou slo₧enou zßvorkou. Na druhΘm °ßdku nßsleduje deklarace ve°ejnΘ (public), statickΘ (static - v²znam si vysv∞tlφme pozd∞ji) metody s identifikßtorem main. Mß jen jeden parametr a to pole (pole si takΘ vysv∞tlφme pozd∞ji) objektov²ch datov²ch typ∙ String s identifikßtorem args, tento identifikßtor je jedinou v∞cφ, kterou m∙₧ete na tΘto deklaraci zm∞nit. Kdy₧ spustφme program, zaΦφnß jeho provßd∞nφ prßv∞ v metod∞ main. Za kulat²mi zßvorkami ve kter²ch je deklarovßn parametr nßsleduje, stejn∞ jako u t°φdy levß slo₧enß zßvorka, kterou zaΦφnß t∞lo metody main() a konΦφ pravou slo₧enou zßvorkou. Metody, t°φdy a jejich specifikßtory p°φstupu budeme probφrat pozd∞ji. Na dalÜφch dvou °ßdcφch je deklarace a inicializace prom∞nn²ch a a b. Na ÜestΘm je pouze deklarace prom∞nnΘ c. 7. °ßdek obsahuje deklaraci a inicializaci hodnotou false logickΘho typu boolean. Na 9. °ßdku se prom∞nnΘ c p°i°adφ hodnota souΦinu prom∞nn²ch a a b. Na dalÜφm °ßdku je volßnφ metody println() statickΘho objektu out t°φdy System a jako parametr jφ p°edßvßme prom∞nnou c, kterou metoda vypφÜe do konzole. Nßsledujφcφ °ßdky obsahujφ °φdφcφ p°φkazy if s r∙zn²mi podmφnkami vyu₧φvajφcφ operßtory, kterΘ jsme se dnes nauΦili. M∙₧ete si nejd°φve rozmyslet, kterΘ hodnoty se vypφÜφ a teprve potΘ spustit program. Pokud vßm nenφ n∞co jasnΘ, napiÜte mi vßÜ problΘm a jß se pokusφm pomoci. D∙le₧itΘ takΘ je, abyste r∙znΘ experimentovali, t°eba s tφmto zdrojov²m k≤dem. Zßv∞r To je pro dnes vÜe. P°φÜt∞ se m∙₧ete t∞Üit na bitovΘ operßtory, kterΘ se tolik nepou₧φvajφ, ale urΦitΘ operace bez nich nejdou. TakΘ probereme vÜechny operßtory p°i°azenφ, ale minimßln∞ jeden u₧ znßte dob°e a to je operßtor =. ╪ekneme si co jsou to literßly a mo₧nß i n∞co dalÜφho.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||