Upload
tyson
View
25
Download
0
Embed Size (px)
DESCRIPTION
Föreläsning 3. Villkorssatsen if Slingor: while och for Felsökning. if-satsen. if-satsen används när ett villkor avgör vad som ska göras: if (ålder < 11) System.out.println(”Barnförbjudet!”); Man kan lägga till else för att tal om vad som ska hända om villkoret inte är uppfyllt: - PowerPoint PPT Presentation
Citation preview
Föreläsning 3
• Villkorssatsen if• Slingor: while och for• Felsökning
if-satsen• if-satsen används när ett villkor avgör vad som ska
göras: if (ålder < 11) System.out.println(”Barnförbjudet!”); • Man kan lägga till else för att tal om vad som ska
hända om villkoret inte är uppfyllt: if (ålder < 11) System.out.println(”Barnförbjudet!”);
else System.out.println(”Välkommen!”);
Jämförelseoperatorer• I villkor kan följande operatorer användas:
• Strängar kan inte jämföras med operatorerna ovan (eftersom strängar inte är primitiva datatyper) .
== lika med!= skilt från< mindre än<= mindre än/lika med> större än>= större än/lika med
• Villkor kan kombineras med följande tre operatorer:
• if (ålder <= 4 || ålder >= 21)
System.out.println(”OK!”);
Logiska operatorer
&& och a<5 && b<5|| eller a<5 || b<5! icke !(a<5)
Slingor• När man vill att vissa satser ska utföras
flera gånger använder man en slinga.• För att visa vilka satser som ska upprepas
sätter man { } runt dessa.• Man kan välja mellan att
– ange ett villkor för hur länge satserna ska upprepas (while-slinga)
– tala om hur många gånger satserna ska upprepas (for-slinga)
while-slinganboolean fortsätt = true;
• Så länge som villkoret är uppfyllt utförs satserna:while (fortsätt) { /* Satser som upprepas */}
• Om villkoret passar bättre sist skriver man:do { /* Satser som upprepas */} while (fortsätt);
Slingexempel - while
// Beräknar tio tvåpotenser
class Potens {
public static void main(String[] args) {
int varv=1, tvåpotens=1;
while (varv <= 10) {
tvåpotens=tvåpotens*2;
System.out.println(tvåpotens);
varv=varv+1;
} //while
} //main
} //Potens
for-slingan
• Vet man hur många varv slingan ska gå runt kan man använda for istället:
• for (int i=0; i<2; i++) {
System.out.println(”Varv ” + i);
}
• Variabeln i ovan existerar bara inuti for-slingan
Slingexempel - for
// Beräknar tio tvåpotenser class Potens { public static void main(String[] args) { int tvåpotens=1; for (int varv=1; varv <= 10; varv++) { tvåpotens=tvåpotens*2; System.out.println(tvåpotens); } //for } //main} //Potens
Felsökning
• Kompileringsfel
• Exekveringsfel
• Logiska fel
Kompileringsfel
• Du har skrivit något som inte är korrekt Java.
• Exempel:'}' expected
MinJavaKod.java:13: '}' expected } // MinJavaKod ^
} saknas vid pilen ^
Exekveringsfel
• Under körning blir något fel.
• Exempel:
Du har en vektor som har 10 element, men något går fel och programmet försöker att ta fram element 33.
Du ber användaren skriva ett heltal som du vill lagra, men denne skriver ett decimaltal.
Logiskt fel
• Du har tänkt fel, dvs programmet kör men producerar felaktiga resultat.
• Exempel: Du vill beräkna cirkelns omkrets men
använder formeln för cirkeln area. Du använder en variabel x som du tror är
radien i din formel, men i ditt program är x diametern. OBS, x är ett dåligt namnval.
Tjuvtitt på metoder
• Vissa beräkningar behöver man göra ofta i ett program. Istället för att skriva satserna som utför beräkningen flera gånger kan man definiera en metod som gör beräkningen.
• En metod känner man igen på att den har parenteser efter namnet (t ex println(), sin(0.58)).
Tjuvtitt på klasser
• De primitiva datatyperna beskriver enkla värden (ett heltal, ett tecken osv).
• För att beskriva sammansatta data använder man klasser.
• Namn på klasser börjar alltid med en versal (t ex String).