Tipa boolean in String
Java pozna tri vrste tipov, osnovne tipe, razrede in
tabele. Dva osnovna tipa smo že spoznali, to sta
int (cela števila) in double (realna števila).
Danes bomo spoznali še osnovni tip boolean in razred
String. Tabele bomo obravnavali v naslednji lekciji.
Java ima tri vrste tipov: osnovni tipi,
razredi in tabele.
|
Tip boolean
Tip
boolean je tip logičnih vrednosti in ima samo dva
elementa: true (resnica) in false (neresnica).
Primer:
| PrimerBoolean.java | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 | public class PrimerBoolean {
public static void main(String[] args) {
int a = 17;
int b = 5;
boolean p = (a < b);
boolean q = (a <= b + 12);
System.out.println(p);
System.out.println(q);
}
} |
> javac PrimerBoolean.java > java PrimerBoolean false true |
V 6. vrstici imamo spremenljivko
p tipa
boolean. V spremenljivko p se shrani vrednost
false, saj je vrednost izraza a < b enaka
false, saj 17 ni manjše od 5.
V 7. vrstici smo definirali spremenljivko
q tipa
boolean. Njena vrednost je true, saj je res,
da je 17 manjše ali enako 5 + 12.
Osnovne operacije za delo s tipom
Rezultat tipa
boolean so:
Tip boolean | |
|---|---|
true | resnica |
false | neresnica |
p && q | logični "in" (konjunkcija) |
p || q | logični "ali" (disjunkcija) |
!p | logična negacija |
boolean dobimo tudi, kadar uporabljamo
relacije za primerjanje elementov:
| Osnovne relacije | |
|---|---|
a == b | enakost (za osnovne tipe): a je enako b |
s.equals(t) | enakost (za razrede): objekt s je enak objektu t |
a != b | različnost (za osnovne tipe): a ni enako b |
a < b | a je manjši od b |
a <= b | a je manjši ali enak b |
a > b | a je večji od b |
a >= b | a je večji ali enak b |
Kako se uporablja
s.equals(t) bomo videli, ko bomo
delali z nizi znakov. Zaenkrat si zapomnimo, da se ==
in != uporabljata za osnovne tipe int,
double in boolean, za objekte pa se vedno
uporabi metoda equals.
Naloga 1
Dani sta celoštevilčni spremenljivki
int a in
int b. Napiši izraz, ki spremenljivko boolean
p nastavi na true, če je kvadrat števila
a večji od kuba števila b in manjši ali
enak od četrte potence b.
Program preizkusi za razne vrednost
a in
b.
Namig
1 2 3 4 5 6 7 8 | public class BepopIsTheBest {
public static void main(String[] args) {
int a = 500;
int b = 234;
boolean p = (tukaj napiši izraz);
}
} |
Naloga 2
Dani sta spremenljivki
boolean p in boolean
q. Napiši izraz, ki v spremenljivko boolean r
nastavi na true če je p enak true
in q enak false, ali če je p enak
false in q enak truee. V ostalih
primerih naj se r nastavi na false.
Se pravi, vrednost
r se določi z naslednjimi
pravili:
- če je
p == falseinq == false, potem jer == false, - če je
p == falseinq == true, potem jer == true, - če je
p == trueinq == false, potem jer == true, - če je
p == trueinq == true, potem jer == false,
Namig
1 2 3 4 | boolean p = true; boolean q = false; boolean r = (tukaj napiši izraz); |
Pogojni stavek
Pogosto želimo v programu napisati ukaz "če je izpolnjen neki
pogoj
p, potem izvedi ukaz A, sicer izvedi
ukaz B." (Na primer, "če je temperatura reaktorja
previsoka, potem pokliči gasilce, sicer zadremaj za pol ure.")
To naredimo v Javi s pogojnim stavkom
Zgornji ukaz preberemo takole: "Če je
Na primer:
Drugi del pogojnega stavka lahko izpustimo:
To pomeni: "Če je
if-else:
if (p) {
A;
}
else {
B;
} |
p enak
true, potem izvedi ukaze A, sicer izvedi ukaze
B". Shematično prikažemo pogojni stavek takole:
Na primer:
| PogojniStavek.java | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class PogojniStavek {
public static void main(String[] args) {
int a = 23;
int b = 7;
if (a < 100) {
b = a * b;
b = b + 2;
}
else {
b = a + b;
b = b * b;
}
System.out.println(b);
}
} |
> javac PogojniStavek.java > java PogojniStavek 163 |
if (p) {
A;
} |
p enak true, potem
izvedi A". (Nariši shemo za ta primer!)
Kadar
A ali B sestoji iz enega samega ukaza,
lahko zavite oklepaje izpustimo, vendar to odsvetujem.
Pogost primer uporabo pogojnih stavkov je tako imenovani "
To pomeni: "če velja
if
else" konstrukt:
if (p1) {
A1;
}
else if (p2) {
A2;
}
.
.
.
else if (pn) {
An;
}
else {
B;
} |
p1, izvedi A1,
sicer če velja p2, izvedi A2,
sicer ..., sicer če velja pn, izvedi
An, sicer izvedi B". Tu se vedno izvede
natanko eden od ukazov A1, A2, ...,
An, B.
Ta konstrukt uporabljamo, kadar želimo izvesti natanko eno od
večih možnosti.
Naloga 3
Dana je spremenljivka
int temp, v kateri je zapisana
temperatura zraka. Na zaslon želimo izpisati opisno besedilo:
- če je temperatura manj kot -10 C, potem izpišemo "
Zelo zelo je hladno.". - če je temperatura med -10 C in 0 C, potem izpišemo "
Zelo je hladno." - če je temperatura med 0 C in 10 C, potem izpišemo "
Hladno je." - če je temperatura med 10 C in 15 C, potem izpišemo "
Vreme je sveže." - če je temperatura med 15 C in 25 C, potem izpišemo "
Vreme je prijetno." - če je temperatura med 25 C in 30 C, potem izpišemo "
Vroče je." - če je temperatura nad 30, potem izpišemo "
Zelo je vroče."
Tipa char in String
Poleg številskih tipov
int in double ter tipa
boolean, pozna Java še osnovni tip char (angl.
"chararcter"). Mimogrede, ime tega tipa se
izgovarja "kar" in ne "čar", ker se "character" izgovori
"karakter" ne pa "čarakter".
Karakterji ali znaki so črke, številke,
presledek, ločila in nasploh vsi znaki, ki jih lahko izpišemo na
zaslon. Karakterje pišemo v enojnih narekovajih:
Posamezni znaki ponavadi niso zelo zanimivi. Bolj koristni so
nizi znakov ali po domače "stringi". V ta
namen ima Java definiran razred
Kaj vse lahko počnemo z nizi?
Razred
potem se v
char c = 'm'; |
Vrednosti osnovega tipa char so znaki.
Znake zapišemo v enojnih narekovajih.
|
String. Nize pišemo v
dvojnih narekovajih:
String ime = "Mojca"; String priimek = "Pokraculja"; |
Tip String | |
|---|---|
s + t | stakni niza s in t |
s.equals(t) | primerj niza s in t |
s.length() | dolžino niza |
s.charAt(k) | k-ti znak v nizu s |
Integer.parseInt(s) | niz s predelaj v celo število |
String vsebuje še mnoge druge metode za delo z
nizi. (Oglej si dokumentacijo za razred String!) Tu
omenimo le, da se znaki v nizu štejejo od 0 dalje. Če torej
izvedemo ukaz
String ime = "Kekec"; char c = ime.charAt(2); |
c shrani znak 'k'. Več izkušenj z
nizi bomo pridobili pri reševanju naslednjih vaj.
Naloga 4
V spremenljivkah
int dan, int mesec in
int leto je shranjen datum. Napiši program, ki v
spremenljivko boolean prosto shrani true,
če je dan z danim datumom dela prost.
Opomba: Velika noč in Binkošti sta dela prosta dneva, ki se
vsako leto spreminjata, zato ti ju ni treba upoštevati.
Namig
Dela prosti dnevi so:
- 1. in 2. januar: Novo leto
- 8. februar: Slovenski kulturni praznik
- Velika noč in velikonočni ponedeljek: spreminjajoč datum
- 27. april: Dan upora proti okupatorju
- 1. in 2. maj: Praznik dela
- Binkošti: spreminjajoč datum
- 25. junij: Dan državnosti
- 15. avgust: Marijino vnebovzetje
- 31. oktober: Dan reformacije
- 1. november: Dan spomina na mrtve
- 25. december: Božič
- 26. december: Dan samostojnosti
Naloga 5
V spremenljivki
String ime je shranjeno ime. Napiši
program, ki spremenljivko boolean moski nastavi na
true, če je ime moško ime in na
false, če je žensko ime.
Program naj deluje po naslednjem pravilu: ime je žensko, če
se konča na
'a', razen v primeru, ko je enako enemu
od naslednjih imen: "Ziga", "Miha",
"Matija", "Jaka".
Naloga 6
Napiši program
Pri reševanju naloge je treba vedeti, kako se pretvori niz
znakov, na primer
VezanaVloga.java, ki z ukazne
vrstice dobi višino vezane vloge (realno število), mesečno
obrestno mero izraženo v procentih (realno število), in
dolžino vezave v mesecih (celo število), ter izpiše, koliko
denarja se bo nabralo na vezani vlogi. Takole:
> java VezanaVloga 200000 4.5 6 Nabralo se bo 260452.024969503 SIT. |
"4.5", ki ga preberemo z metodo
readLine(), v realno število 4.5. Za
pretvorbo iz niza v double uporabi Double.parseDouble,
za pretvorbo niza v int pa Integer.parseInt.
Kaj se zgodi, če namesto števila vpišete "banana"?