Računalništvo 1 (PRA)

lekcije / Tipa boolean in String

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 boolean so:
Tip boolean
true resnica
false neresnica
p && q logični "in" (konjunkcija)
p || q logični "ali" (disjunkcija)
!p logična negacija
Rezultat tipa 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 <= ba je manjši ali enak b
a > b a je večji od b
a >= ba 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
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
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 if-else:
if (p) {
  A;
}
else {
  B;
}
Zgornji ukaz preberemo takole: "Če je p enak true, potem izvedi ukaze A, sicer izvedi ukaze B". Shematično prikažemo pogojni stavek takole: stavek if-then 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
Drugi del pogojnega stavka lahko izpustimo:
if (p) {
  A;
}
To pomeni: "Če je 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 "if else" konstrukt:
if (p1) {
  A1;
}
else if (p2) {
  A2;
}
.
.
.
else if (pn) {
  An;
}
else {
  B;
}
To pomeni: "če velja 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

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:
char c = 'm';
Vrednosti osnovega tipa char so znaki.
Znake zapiš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 String. Nize pišemo v dvojnih narekovajih:
String ime = "Mojca";
String priimek = "Pokraculja";
Kaj vse lahko počnemo z nizi?
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
Razred 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);
potem se v c shrani znak 'k'. Več izkušenj z nizi bomo pridobili pri reševanju naslednjih vaj.
Naloga 4
Naloga 5
Naloga 6