• No results found

Villkor (selektion) i Java if-satsen switch-satsen

N/A
N/A
Protected

Academic year: 2022

Share "Villkor (selektion) i Java if-satsen switch-satsen"

Copied!
18
0
0

Loading.... (view fulltext now)

Full text

(1)

Villkor (selektion) i Java if-satsen

switch-satsen

Programmet väljer väg…

Om … gör programmet si annars gör det så

satser

satser

satser satser

Ja Nej

(2)

if-satsen

if (logisk uttryck) {

… // om sant gör något

}

else {

… // annars gör något annat

}

(3)

Logiska uttryck är true el false

Byggs upp av relationer och operatorer Ex. relationer:

> Större än

>= Större än och lika med

< Mindre än

<= Mindre än och lika med

== Lika med

!= Icke lika med Ex.operatorer:

&& och

|| eller

! icke

(4)

Exempel if-satser

if

if (saldo>0) {

System.out.prinln("Det finns pengar på kontot");

}

if med else

if (ålder>=18) { lön=18000;

}

else {

lön=15000;

}

Testa likhet

if (datum == 20090101) {

System.out.println("Gott nytt år!");

}

Testa icke lika med

if ( låskod!=1456) {

System.out.println("Fel låskod");

(5)

Exempel if-satser…

Går rötterna att räkna ut i pq-formeln?

if ( (p/2)*(p/2)<q ) {

System.out.println("Rötterna går ej att beräkna");

}

else {

x1 = … // Första roten x2 = … // Andra roten

System.out.println("x1=" + x1 + " x2=" + x2);

}

OCH-test: Är variabeln årtal i intervallet [1990,2010]?

if ( (årtal>=1990) && (årtal<=2010) ) { …

}

ELLER-test: Är variabeln årtal utanför intervallet [1990,2010]?

if ( (årtal<1990) || (årtal>2010) ) { …

(6)

Alt 1:

if (x>=y) { // x större än eller lika med y?

max=x; // då är max=x }

else { // Annars, är max=y max=y;

}

Alt 2:

max=x; // Hypotes: max=x if (y>max) { // y större än max?

max=y; // Ja, sätt max=y }

Exempel, beräkna maxvärdet av två tal x,y

spara maxvärdet i variabeln max

(7)

Alt 1:

if ( (x>=y) && (x>=z) ) { max = x;

}

if ( (y>=x) && (y>=z) ) { max = y;

}

if ( (z>=x) && (z>=y) ) { max = z;

}

Alt 2:

max = x; // Hypotesen är att max=x if (y>max) {

max = y;

}

if (z>max) { max = z;

Exempel beräkna maxvärdet av tre tal x,y,z

Lagra maxvärdet i variabeln max.

(8)

int val;

System.out.println("Välj mellan följande");

System.out.println("(1) Kaffe. (2) Cappucino.");

val = scan.nextInt(); // Läs in kundens val // Yttre if-sats

if (val==1) {

System.out.println("Kaffe beställd … ");

}

else {

// Inre if-sats if (val==2) {

System.out.println("Cappucino beställd…");

}

else {

System.out.println("Fel val…");

} // Slut inre if-sats } // Slut yttre if-sats

Exempel nästlad if-sats: en if-sats i en annan if-sats

En if-sats i en annan if-sats

(9)

Inkomstskatt = kommunal skatt + statlig skatt.

För år 2007 gällde följande:

1. Kommunalskatten i Uppsala kommun är 31,80 kr, dvs skatten är 31,8% av inkomsten.

2. a) Statlig skatt betalas för den som har en årsinkomst på mellan

316 700 kr och 476 700 kr med 20 % på den del som överstiger 316 700 kr.

b) På den inkomst som överstiger 476 700 kr är den statliga inkomstskatten 25 %.

c) Den som tjänar mindre än 316 700 kr betalar ingen statlig skatt.

Skriv ett program som frågar efter en årsinkomst,

Beräkna och skriv ut den sammanlagda skatten, dvs kommunal plus statlig skatt.

Vi löser det på tavlan…

Exempel, beräkna inkomstskatt

(10)

Villkor och strängar

Exempel, kontroll av lösenord:

System.out.println("Ge lösenordet");

String s = scan.nextLine();

// Kolla om strängen stämmer exakt med lösenordet if ( s.compareTo("hEmLiGt")==0 ) {

System.out.println("Korrekt lösenord");

… }

Exempel, fråga om man vill göra något eller ej:

System.out.println("Vill du slå tärningen (j/n)?");

String s = scan.nextLine(); // läs in svaret

// Kolla om första tecknet i strängen s är J eller j if ( s.charAt(0)=='J' || s.charAt(0)== 'j' ) {

int tärning = (int) (6*Math.random() + 1);

System.out.println("Tärningen visar:" + tärning);

}

(11)

Övningar: skriv javaprogram med if-satser

A1. Läs in ett flyttal och lagra värdet i variabeln x. Om x är negativt

skall texten NEGATIV skrivas ut, annars POSITIV. Testa med lite olika värden för att bekräfta att det blir korrekt.

A2. Läs in två flyttal. Beräkna och skriv ut det största värdet av de två.

Testa med lite olika värden för att bekräfta att det blir korrekt.

A3. Läs in två heltal och jämför värdena. Skriv ut FÖRSTA MINST,

BÅDA LIKA eller ANDRA MINST beroende på hur talen förhåller sig till varandra. Testa med lite olika värden för att bekräfta att det blir korrekt.

A4. Skriv ett program som ställer följande tre frågor där man svarar 1 ifall man menar Ja och 2 ifall man menar Nej.

Är du man? Är du under 30 år? Har du inga barn?

Om minst två av villkoren är uppfyllda skall programmet skriva ut följande:

Du är kvalificerad för jobbet hos oss!

(12)

Övningar: javaprogram med if-satser…

A5. Slumpa ett tärningskast. Om tärningen visar 1 eller 6 skriv ut VINST annars FÖRLUST.

A6. Slumpa två st tärningskast, lagra värdena i varsin variabel. Om de båda tärningskasten får samma värde skall texten LIKA skrivas ut, annars OLIKA.

A7. Skriv ett program där man frågar efter p och q samt beräknar rötterna till y=x2+px+q=0.

Programmet skall först kontrollera om rötterna är reella. Om inte så är fallet skall ett meddelande skrivas ut. Annars skall rötternas

värden beräknas och skrivas ut. Testa med lite olika värden på p och q.

(13)

switch-satsen

satser

satser

satser

satser satser satser satser

Programmet kan välja flera alternativa vägar…

1

2 3 4 5

(14)

Exempel, styra en sköldpadda…

World w = new World();

Turtle t = new Turtle(w);

int val;

System.out.println("Vad vill du göra? ");

val = scan.nextInt(); // Läs in svaret switch (val) {

case 1: t.forward(); break;

case 2: t.turnRight(); break;

case 3: t.turnLeft(); break;

default: System.out.println("Felval");

}

(15)

World w = new World();

Turtle t = new Turtle(w);

int val;

while (true) {

System.out.println("Vad vill du göra? ");

val = scan.nextInt(); // Läs in svaret switch (val) {

case 1: t.forward(); break;

case 2: t.turnRight(); break;

case 3: t.turnLeft(); break;

default: System.out.println("Fel val");

} // slut switch-sats } // slut while-sats

Modifiera programmet: Frågan upprepas i en oändlig loop:

Vi placerar frågan och switch-satsen i while-loopen

(16)

Värdena i switch-satsen måste vara uppräkningsbara, dvs heltal eller tecken

Exempel heltalet tärning:

switch (tärning) {

case 1 : … ; break;

case 2 : … ; break;

default: … }

Exempel tecknet teck:

switch (teck) {

case 'A' : … ; break;

case 'B' : … ; break;

case 'C' : … ; break;

default: …

}

(17)

Exempel: Översätt sifferbetyg till bokstavsbetyg

Ett sifferbetyg skall översättas till ett textbetyg enligt följande:

1  VU, 2U, 3G, 4VG, 5MVG.

Vi läser in ett sifferbetyg (ett heltal) och skapar en strängvariabel betyg

som får strängvärdet VU, U, G, VG eller MVG beroende på vad sifferbetyget är.

Skriver sedan ut värdet av betyg .

System.out.println("Ge sifferbetyg: ");

int sifferbetyg = scan.nextInt();

String betyg;

switch (sifferbetyg) {

case 1: betyg="VU"; break;

case 2: betyg="U"; break;

case 3: betyg="G"; break;

case 4: betyg="VG"; break;

case 5: betyg="MVG"; break;

default: betyg="???";

System.out.println("Okänt betyg");

}

System.out.println("Blir bokstavsbetyg: " + betyg);

(18)

Övningar: skriva javaprogram med switch-satsen

B1. Lös kaffe/cappucino-programmet, men med en switch-sats.

B2. Fråga efter EN romersk siffra och skriv ut värdet av den enligt följande tabell:

I1, V5, X10, L50, C100, D500, M1000

Tips: Läs in den romerska siffran som en text till en strängvariabel s.

String s;

s = scan.nextLine();

Plocka fram det första tecknet i strängen på följande sätt:

char t;

t = s.charAt(0); // Tecknet i position 0 Skriv sedan en switch-sats som beräknar värdet.

B3: Fråga efter ett romerskt tal med två siffror, exvis VI, och beräkna värdet.

B4. Lös uppgift B1, men med en loop som upprepat frågar efter val av dryck tills man fått ett korrekt svar.

References

Related documents

Satsen gäller inte, heltalet noll kan inte skrivas som en produkt av två heltal som inte är

Denna uppsats utgör ett försök att förklara en intuitiv uppfattning om att konnektion används för att organisera en text på flera olika nivåer. Uppsatsens omfattning är

[r]

(b) Den komponent som går sönder först bestämmer

Bestäm punkter där funktionen inte är kontinuerlig, singulära punkter, lokala extrem- punkter, absolut maximum och absolut minimum om de …nns.. (6p) Bestäm de intervall där

Det finns forskning om detta som visar positiva effekter på skolor, det är bland annat Gustafson och Hjörne (2015) som menar att när inkludering används som ett medvetet

SAMMANFATTNING OM KONTINUERLIGA FUNKTIONER Definition. Satsen om mellanliggande värden. Följande sats är en direkt följd av satsen om mellanliggande värde.. Enligt satsen

Skriv nedanstående exempel i en matlab script-fil (m-fil) och testa hur de fungerar.. b) Beräkna summan av alla