Föreläsning 3: Booleans, if, switch

Relevanta dokument
Föreläsning 4: for, while, do-while

Klassdeklaration. Metoddeklaration. Parameteröverföring

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Föreläsning 2, vecka 8: Repetition

OOP Objekt-orienterad programmering

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

OOP Objekt-orienterad programmering

Programmering A. Johan Eliasson

F4. programmeringsteknik och Matlab

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Imperativ programmering. Föreläsning 2

Introduktion till Datalogi DD1339. Föreläsning 3 29 sept 2014

Föreläsning 6: Metoder och fält (arrays)

SMD 134 Objektorienterad programmering

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

OOP Objekt-orienterad programmering

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Föreläsning 3-4 Innehåll

Föreläsning 8: Exempel och problemlösning

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Föreläsning 12: Exempel och problemlösning

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Villkor och tester. Utförande satser bygger upp metoderna, man brukar finindela detta i: sekvenser. Ett program består i princip av: selektioner (val)

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Objektorienterad programmering i Java

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 11: Rekursion

TDDC77 Objektorienterad Programmering

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Typkonvertering. Java versus C

Programmeringsteknik I

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

TDIU01 - Programmering i C++, grundkurs

TENTAMEN OOP

TDDC77 Objektorienterad Programmering

"if"-satsen. Inledande programmering med C# (1DV402)

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

Parameteröverföring. Exempel. Exempel. Metodkropp

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

TENTAMEN OOP

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

LÖSNINGSFÖRSLAG TENTAMEN

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

Tentamen OOP

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);

Föreläsning ALGORITMER: SÖKNING, REGISTRERING, SORTERING

Objektorienterad Programmering (TDDC77)

Föreläsning 1 & 2 INTRODUKTION

Exempel på ett litet Ada-program

Obligatorisk uppgift 5

Lösningsförslag: Instuderingsfrågor, del A

TENTAMEN OOP

Objektorienterad programmering i Java

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning REPETITION & EXTENTA

Övning2. Variabler. Data typer

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Tentamen , Introduktion till Java, dtaa98, dtea53

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

Läsanvisning: Dessa OH bilder samt kap 1-3

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

Tentamen. Lösningsförslag

TDIU01 - Programmering i C++, grundkurs

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Classes och Interfaces, Objects och References, Initialization

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Tentamen ID1004 Objektorienterad programmering December 15, 2012

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 1

Logik och kontrollstrukturer

Instuderingsfrågor, del A

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:

Tentamen Programmeringsteknik II och NV2 (alla varianter) Skriv bara på framsidan av varje papper.

Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering!

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Transkript:

TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016

Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt objekt (boll1) som är en instans av klassen Boll. Hela raden kallas en deklaration, och i detta fall med utgångsvärdet specificerat med = new Boll(5,12). Som bild: en klass definition variabel, dvs en minnesplats ett objekt, dvs instans x är 5, y är 12 instanspil Boll har x, y typ: Boll namn: boll1 referensvärde

Påminnelse om terminologi och namn objekt = instans (av en klass) immutable object ett objekt som man inte kan ändra primitiva typer (int, char, boolean, mm.) klasstyper/referenstyper (allt annat, String, Rectangle, Ball, mm.) Namn konventioner/regler: boll Boll BOLL variabel eller metod klass konstant

Deklarationer och tilldelningar först evalueras deklarationen variabeler, dvs minnesplatser: int thismonth; int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5;

Deklarationer och tilldelningar först evalueras deklarationen int thismonth; int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5; variabeler, dvs minnesplatser: minnesplatsen är tom namn: thismonth

Deklarationer och tilldelningar nu har deklarationen körts då raderar vi den int thismonth; int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5; variabeler, dvs minnesplatser: namn: thismonth

Deklarationer och tilldelningar int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5; variabeler, dvs minnesplatser: namn: thismonth

Deklarationer och tilldelningar int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5; variabeler, dvs minnesplatser: namn: thismonth

Deklarationer och tilldelningar int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5; variabeler, dvs minnesplatser: en ny minnesplats skapas med 1987 som värde namn: thismonth 1987 namn: thisyear

Deklarationer och tilldelningar int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5; variabeler, dvs minnesplatser: namn: thismonth 1987 namn: thisyear

Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth int nextyear = thisyear + 1; nextyear = nextyear + 5; 1987 namn: thisyear

Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth int nextyear = thisyear + 1; nextyear = nextyear + 5; 1987 namn: thisyear namn: nextyear

Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = thisyear + 1; nextyear = nextyear + 5; 1987 namn: thisyear namn: nextyear

Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = thisyear + 1; nextyear = nextyear + 5; 1987 namn: thisyear namn: nextyear

Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = 1987 + 1; nextyear = nextyear + 5; 1987 namn: thisyear namn: nextyear

Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = 1988; nextyear = nextyear + 5; 1987 namn: thisyear namn: nextyear

Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = 1988; nextyear = nextyear + 5; 1987 namn: thisyear namn: nextyear

Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = nextyear + 5; 1987 namn: thisyear 1988 namn: nextyear

Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = nextyear + 5; 1987 namn: thisyear 1988 namn: nextyear

Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = 1988 + 5; 1987 namn: thisyear 1988 namn: nextyear

Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth nextyear = 1993; 1987 namn: thisyear 1988 namn: nextyear

Deklarationer och tilldelningar variabeler, dvs minnesplatser: namn: thismonth koden har kört klart 1987 namn: thisyear 1993 namn: nextyear

Beräkningar Öva på egenhand! på papper t.ex. Man kan testa sina egna simuleringar mot ett verktyg: http://www.pythontutor.com/java.html men OBS ni måste kunna göra detta utan verktyg! int thismonth; int thisyear = 1987; int nextyear = thisyear + 1; nextyear = nextyear + 5;

Läsanvisning Jag pekar nedan på var i boken de olika sakerna tas upp. Boken tar dock upp dessa saker ganska sent i sammanhang med andra saker som ni inte ännu behärskar. Det kan därför vara rätt svårt att läsa dessa hänvisningar nu. datatypen Boolean 4.2, 4.6 relationsuttryck och logiska uttryck (.) De Morgan's lag (s 217) operatorer (utspritt) if (4.1), switch(4.8) Nästa föreläsning: for (12.7,12.6), while (7.3.1, 12.6), do-while (7.5)

Datatypen Boolean och logiska uttryck Utsagan: det snöar eller a<8 är antingen sann eller falsk Att ta reda på vilket är en form av beräkning som resulterar i något av värdena sant eller falskt Typen boolean har litteralerna {true, false och de logiska (booleska) operatorerna: and (&&), or ( ) och not (!) Relationsuttryck och logiska uttryck Relationsuttryck: a<10, a!=10, a<=10- b Logiska uttryck byggs upp av variabler av typ boolean, relationsuttryck och de logiska operatorerna and (&&), or ( ) och not (!) går ej! x>10 && x<20- y b 10<x<20 10<x && x<20

Sanningstabell för de logiska operatorerna a b! a a && b a b false false true false false false true true false true true false false false true true true false true true boolean sunny, overcast, pleasant; double temp;... sunny = true; overcast =!sunny; pleasant = sunny &&!(temp < 18.0 30.0 < temp);

testa koden med visualiseringsverktyget! public class Weather { public static void main(string[] args) { boolean sunny, overcast, pleasant; double temp; temp = 19.0; sunny = true; overcast =!sunny; pleasant = sunny &&!(temp < 18.0 30.0 < temp); System.out.println("Pleasant: " + pleasant);

Förenkling av logiska uttryck De Morgan's lag!(a && B) är samma sak som!a!b!(a B) är samma sak som!a &&!B Enkelt ex: Betrakta uttrycket på förra sidan!(temp < 18.0 30.0 < temp) är då detsamma som!(temp < 18.0) &&!(30.0 < temp) vilket i sin tur är 18.0 <= temp && temp <= 30.0 Logiska uttryck evalueras med "lat" evaluering. (lazy evaluation)

Förenkling av logiska uttryck public class Weather { public static boolean p(string s, boolean v) { System.out.println(s); return v; public static void main(string[] args) { boolean sunny, overcast, pleasant; double temp; temp = 17.0; sunny = true; overcast =!sunny; pleasant = sunny &&!(p("mindre",temp < 18.0) p("större",30.0 < temp)); System.out.println("Pleasant: " + pleasant); Vad skrivs ut? Logiska uttryck evalueras med "lat" evaluering. (lazy evaluation)

De flesta operatorer i Java i precedensordning högsta arg++, arg--, [], (), metod anrop: name.fieldname unära multiplikationsop. *, /, % additionsop. +, - ++arg, --arg, +arg, -arg,!arg new, (type)expr relationsop. <, <=, >, >=, instance of likhetsop. ==,!= tilldelning =, +=, -=,... logiskt och && logiskt eller Prioriteten kan ändras med parenteser dvs i Java binder && starkare än OBS: a && b c är samma som (a && b) c (definieras olika i olika språk jmf Pascal: [not] [*, /, div, mod, and] [+, -, or] [=, <, >, <=...]) Ada: [abs, not, **] [*, /, mod] [monadiska +,-] [+, -, &] [=, /=, <, <=, >, >= ] [and, or, xor]

if satsen: selektion/val Syntax if (<boolean expression1>) { <statements> else if (<boolean expression2>){ <statements> else if (... else { <statements> Semantik Semantik 1. Villkoret(n) evalueras (i tur och ordning). 2.Satserna efter det första sanna villkoret exekveras en gång. 3.Resten av villkoren evalueras inte. 4.Om inget av villkoren är sant exekveras satserna efter else en gång.! Noll eller ett else,! Noll eller flera else if tillåtna. ( evalueras = beräknas)

if satsen public class Test { public static void main(string[] args) { int a = 5; int b = 6; if (a < b) { System.out.println("a minst"); else if (a == b) { System.out.println("a = b"); else { System.out.println("b minst"); // end if // end Test OBS Använd alltid block ( dvs { ) Annars luras du med indenteringen if (false) System.out.println( one ); System.out.println( two ); System.out.println( three );

Skottår if (year%4 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { om året inte är delbart med 4 => ej skottår om året är delbart med 4 - om det inte är delbart med 100 => skottår om det är delbart med 100 - om det är delbart med 400 => skottår annars inte

Evaluering först beräknas villkoret if (year%4 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { variabel, dvs en minnesplats 300 namn: year

Evaluering först beräknas villkoret if (year%4 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { variabel, dvs en minnesplats 300 namn: year

Evaluering först beräknas villkoret if (300 % 4 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { variabel, dvs en minnesplats 300 namn: year

Evaluering först beräknas villkoret if ( 0 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { variabel, dvs en minnesplats 300 namn: year

Evaluering först beräknas villkoret if (true) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { variabel, dvs en minnesplats 300 namn: year

Evaluering if (true) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { nu vet vi att första { körs och else raderas variabel, dvs en minnesplats 300 namn: year

Evaluering if (year%100 == 0) { if (year%400 == 0) { else { else { variabel, dvs en minnesplats 300 namn: year

Evaluering if (year%100 == 0) { if (year%400 == 0) { else { else { variabel, dvs en minnesplats 300 namn: year

Evaluering if ( 300 % 100 == 0) { if (year%400 == 0) { else { else { variabel, dvs en minnesplats 300 namn: year

Evaluering if ( 0 == 0) { if (year%400 == 0) { else { else { variabel, dvs en minnesplats 300 namn: year

Evaluering if (true) { if (year%400 == 0) { else { else { variabel, dvs en minnesplats 300 namn: year

Evaluering if (true) { if (year%400 == 0) { else { else { variabel, dvs en minnesplats 300 namn: year

Evaluering if (year%400 == 0) { else { variabel, dvs en minnesplats 300 namn: year

Evaluering if (year%400 == 0) { else { variabel, dvs en minnesplats 300 namn: year

Evaluering if (300 % 400 == 0) { else { variabel, dvs en minnesplats 300 namn: year

Evaluering if ( 300 == 0) { else { variabel, dvs en minnesplats 300 namn: year

Evaluering if (false) { else { variabel, dvs en minnesplats 300 namn: year

Evaluering if (false) { else { variabel, dvs en minnesplats 300 namn: year

Evaluering variabel, dvs en minnesplats 300 namn: year resultatet är att metoden/funktionen returnerar false, mera om metoder senare

Testa koden själv! public class Leap { public static boolean isleapyear(int year) { if (year%4 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { public static void main(string[] args) { System.out.println(isLeapYear(300)); Verktyg: http://www.pythontutor.com/java.html

Förenkla... if (year%4 == 0) { if (year%100 == 0) { if (year%400 == 0) { else { else { else { if (year%4 == 0) { if (year%100 == 0) { return (year%400 == 0) else { else {

Förenkla... if (year%4 == 0) { if (year%100 == 0) { if (year%4 == 0) { return (year%400 == 0) else { else { return (year%100!= 0) (year%400 == 0) else {

Förenkla... if (year%4 == 0) { return (year%100!= 0) (year%400 == 0) return (year%4 == 0) && ((year%100!= 0) (year%400 == 0)) else { OBS: Förenkla försiktigt! Gör inte koden svårläst eller fel. OBS: Logiska uttryck evalueras med "lat" evaluering. (lazy evaluation)

switch/case satsen: selection/val Syntax switch ( <integer expression> ) {(Java7 även String) case <value> : <statements> break; // exit the switch case <value1> : <statements> case <value2> : <statements> break; // exit the switch default : <statement> break; // exit the switch Exempel char ch = nåt lämpligt tecken switch (ch) { case 'x': System.out.println("Option x"); break; case 'c': System.out.println("Option c"); break; default:...println("okänd flagga"); break; // end case

switch exempel // Precon: 1 <= month <= 12 // Postcon: returns the number of days in the month public static int daysinmonth(int year, int month) { switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; // return => no break needed case 4: case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; // end switch // end daysinmonth

Evaluering/beräkning av switch switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; Vi börjar med att räkna uttrycket som bestämmer vad vi kommer att radera. variabel, dvs en minnesplats namn: month 6

Evaluering/beräkning av switch switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; Vi börjar med att räkna uttrycket som bestämmer vad vi kommer att radera. variabel, dvs en minnesplats namn: month 6

Evaluering/beräkning av switch switch (6) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; Vi börjar med att räkna uttrycket som bestämmer vad vi kommer att radera. variabel, dvs en minnesplats namn: month 6

Evaluering/beräkning av switch switch (6) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6

Evaluering/beräkning av switch switch (6) { case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6

Evaluering/beräkning av switch switch (6) { case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6

Evaluering/beräkning av switch switch (6) { case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6

Evaluering/beräkning av switch switch (6) { case 9 och 11 är bara namn, de skippar vi case 6: case 9: case 11: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6

Evaluering/beräkning av switch switch (6) { case 6: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6

Evaluering/beräkning av switch switch (6) { case 6: return 30; case 2: if (isleapyear(year)) { return 29; else { return 28; default: return - 1; variabel, dvs en minnesplats namn: month 6

Evaluering/beräkning av switch resultatet är att metoden returnerar 30 return 30; variabel, dvs en minnesplats namn: month 6