(Microsoft PowerPoint - Java f\366rel\344sning 3 A

Dagens föreläsning, kap 10
Kontrollstrukturer
– if, switch, while, for, do-while
Lazy evaluation
Nästlade loopar och selektioner
Pre- och postfix
Read ahead
Karlstads universitet, Johan
Öfverberg
if-sats
int tal=10;
if(tal==10)
System.out.print("Talet är 10");
else
System.out.print("talet är inte 10");
Om vi vill göra mer än en ”grej” då?
– Vi skapar ett block
Karlstads universitet, Johan
Öfverberg
switch-sats
int tal=3;
switch(tal){
case 1: System.out.println("Talet är 1");
case 2: System.out.println("Talet är 2");
case 3: System.out.println("Talet är 3");
case 4: System.out.println("Talet är 4");
default: System.out.println("Talet är inte 1-4");
}
Vad blev det för fel här då?
– break;
Karlstads universitet, Johan
Öfverberg
Karlstads Universitet, Johan Öfverberg
1
while-loop
int tal=0;
while(tal<5){
System.out.println(tal);
tal++;
}
Karlstads universitet, Johan
Öfverberg
for-loop
int i;
for(i=0;i<5;i++)
System.out.println(i);
Jämför for- och while loop
– Visst är de lika?
– Jag tycker att ni skall skilja på användningen av
dem i alla fall
Karlstads universitet, Johan
Öfverberg
do-while-loop
int i=0;
do{
System.out.println(i);
i++;
}while(i<5);
Körs alltid minst 1 gång
Semikolon efter uttrycket
Karlstads universitet, Johan
Öfverberg
Karlstads Universitet, Johan Öfverberg
2
Pre- och postfix
int tal1=4,tal2=6,sum;
sum=++tal1 + tal2++;
System.out.println("tal1 = ”\
+tal1+", tal2="+tal2+ \
". Sum är "+ sum);
Undvik detta genom att använda fler rader
Karlstads universitet, Johan
Öfverberg
Lazy evaluation
int tal=4,i=0;
if((i==0)&&(tal++<8))
System.out.println("1:a
System.out.println("Värdet
if((i==0)||(tal++<8))
System.out.println("2:a
System.out.println("Värdet
if-satsen körs");
på tal är "+tal);
if-satsen körs");
på tal är "+tal);
Karlstads universitet, Johan
Öfverberg
Read ahead
Gör det en gång innan loopen och sedan sist i varje varv!
Scanner tgb=new Scanner(System.in);
int tal;
System.out.print("Ange tal: ");
tal=tgb.nextInt();
while(tal!=0){
System.out.println("Talet är "+tal);
System.out.print("Ange tal: ");
tal=tgb.nextInt();
}
System.out.print("Slut");
Karlstads universitet, Johan
Öfverberg
Karlstads Universitet, Johan Öfverberg
3
continue och break
continue, avbryter loopen och fortsätter med
nästa varv
break, avbryter loopen och fortsätter med
nästa sats efter loopen.
Ingen av dem bör användas. Undantaget är
break i switch (case) satser.
Karlstads universitet, Johan
Öfverberg
Vad gör programmet?
Random r=new Random();
int tal=r.nextInt(20);
while(tal>0){
if((tal%2)==0)
System.out.println("Talet är
jämnt="+tal);
else
System.out.println("Talet är
udda="+tal);
tal--;
}
Karlstads universitet, Johan
Öfverberg
Karlstads Universitet, Johan Öfverberg
4