Presentation laddar. Vänta.

Presentation laddar. Vänta.

Några småsaker switch break, continue, goto Kommentarer.

Liknande presentationer


En presentation över ämnet: "Några småsaker switch break, continue, goto Kommentarer."— Presentationens avskrift:

1 Några småsaker switch break, continue, goto Kommentarer

2 switch jmf: if(weekday==1) printf("Monday\n"); else if(weekday==2)
int weekday; printf("Mata in veckodagnummer 1-7: "); scanf("%d", &weekday); switch(weekday) { case 1: printf("Monday\n"); break; case 2: printf("Tuesday\n"); case 3: printf("Wednesday\n"); case 4: printf("Thursday\n"); case 5: printf("Friday\n"); default: printf("Weekend!\n"); } jmf: if(weekday==1) printf("Monday\n"); else if(weekday==2) printf(“Tuesday\n"); else if(weekday==3) printf(“Wednesday\n"); else if(weekday==4) printf(“Thursday\n"); else if(weekday==5) printf(“Friday\n"); else printf(“Weekend! \n "); diskutera att break behövs annars görs alla satser efter den som är sann, weekday ska vara heltalsuttryck

3 break Skrivs inuti en switch, for, while eller do-while sats
När den exekveras hoppar programmet genast ut ur den sats (switch, for, while, do-while) den står i Med undantag för switch-satsen behöver den normalt inte användas int i=1,summa=0,tmp; for(i=0;i<10;i++) { printf("Skriv in tal %d:",i); scanf("%d",&tmp); if(tmp==0) break; else summa = summa+tmp; } printf("Summa:%d",summa);

4 continue Skrivs inuti en for, while eller do-while sats
När den exekveras påbörjas ett nytt varv Finns egentligen aldrig en bra anledning att använda denna

5 goto Använd aldrig under några omständigheter denna sats!
Om ni någon gång använder goto se då till att följa regeln ovan Möjligen kan användandet av goto tillfälligt under debugging vara motiverat men jag tycker att även här använder vi regel ett för att reglera användandet Den sammanlagda kostnaden för världen pga goto hann innan användandet begränsades överstiga kostnaden för NASA och CERN tillsammans! (källa: ingen alls men jag känner på mig att det stämmer)

6 Kommentarer Finns av två typer: //resten av raden ignoreras av kompilatorn /*kan löpa över flera rader och avslutas vid*/ OBS att den senare inte kan nästlas! Skall förklara koden men inte förklara sådant som man förstår om man förstår C. Man ska ha lagom många kommentarer ! Endast genom övning lär man sig vilka kommentarer som behövs och vilka som är överflödiga. Till labbarna försök skriva de kommentarer du tror du behöver för att enkelt förstå koden om två veckor. Läs koden två veckor senare och se om det hade behövts fler kommentarer och om några var överflödiga.

7 Miniräknaren Konstruera en miniräknare som låter användaren addera, subtrahera, multiplicera eller dividera två tal valfritt antal gånger. Gör om miniräknaren så att användaren använder svaret från en beräkning i nästa beräkning

8 Steg 1 Skriv en start (hello world) och kompilera så att du vet att allt funkar

9 #include <stdio.h> int main(){ printf("Valkommen till miniraknaren!"); return 0; }

10 Steg 2 Fixa inläsningen av data ( vi väntar med att fixa så att man kan göra flera beräkningar till sist) Kontrollera att du lyckas läsas in dina indata!

11 int main(){ int val; float tal1,tal2; printf("Valkommen till miniraknaren!\n"); printf("Valj alternativ:\n"); printf("1. Addition\n"); printf("2. Subtraktion\n"); printf("3. Multiplikation\n"); printf("4. Division\n"); scanf("%d",&val); printf("Ange tal 1:"); scanf("%f",&tal1); printf("Ange tal 2:"); scanf("%f",&tal2); printf("%d %f %f\n",val,tal1,tal2); return 0; }

12 Steg 3 Gör beräkningen baserat på indata

13 Diskutera gärna uppdelningen indata, beräkning, utdata
int main(){ int val; float tal1,tal2,resultat; printf("Valkommen till miniraknaren!\n"); printf("Valj alternativ:\n"); printf("1. Addition\n"); printf("2. Subtraktion\n"); printf("3. Multiplikation\n"); printf("4. Division\n"); scanf("%d",&val); printf("Ange tal 1:"); scanf("%f",&tal1); printf("Ange tal 2:"); scanf("%f",&tal2); if(val==1) { resultat=tal1+tal2; }else if(val==2) resultat=tal1-tal2; }else if(val==3) resultat=tal1*tal2; }else resultat=tal1/tal2; } printf("Resultatet blev: %f\n",resultat); return 0; Diskutera gärna uppdelningen indata, beräkning, utdata

14 Steg 4 Ge användaren möjlighet att göra fler beräkningar

15 int main(){ int val,fortsatt=1; float tal1,tal2,resultat; printf("Valkommen till miniraknaren!\n"); while(fortsatt) { printf("Valj alternativ:\n"); printf("1. Addition\n"); printf("2. Subtraktion\n"); printf("3. Multiplikation\n"); printf("4. Division\n"); scanf("%d",&val); printf("Ange tal 1:"); scanf("%f",&tal1); printf("Ange tal 2:"); scanf("%f",&tal2); if(val==1) resultat=tal1+tal2; }else if(val==2) resultat=tal1-tal2; }else if(val==3) resultat=tal1*tal2; }else resultat=tal1/tal2; } printf("Resultatet blev: %f\n",resultat); printf("Vill du fortsatta 0-Nej, 1-Ja"); scanf("%d",&fortsatt); return 0;

16 Steg 5 – Använda svaret i nästa beräkning
Nu ska vi göra om programmet så att det delvis löser en annan uppgift Det är vanligt att kunden ändrar sig under ett projekts gång. Det är när man ska införa ändringar man märker hur välskrivet programmet är. Ett bra program är modulärt uppbyggt och det är enkelt att göra ändringar utan att man behöver skriva om hela koden

17 int main(){ int val,fortsatt=1; float tal1,tal2,resultat; printf("Valkommen till miniraknaren!\n"); printf("Ange tal 1:"); scanf("%f",&tal1); while(fortsatt) { printf("Valj alternativ:\n"); printf("1. Addition\n"); printf("2. Subtraktion\n"); printf("3. Multiplikation\n"); printf("4. Division\n"); scanf("%d",&val); printf("Ange tal 2:"); scanf("%f",&tal2); if(val==1) resultat=tal1+tal2; }else if(val==2) resultat=tal1-tal2; }else if(val==3) resultat=tal1*tal2; }else resultat=tal1/tal2; } printf("Resultatet blev: %f\n",resultat); tal1=resultat; printf("Vill du fortsatta 0-Nej, 1-Ja"); scanf("%d",&fortsatt); return 0;

18 Tändsticksspel Det finns ett tändsticksspel där man lägger upp 15 tändstickor på ett bord. Två spelare ska sedan turas om att ta en, två eller tre tändstickor. Den som tar den sista stickan vinner. Programmera ett program som låter användaren spela mot datorn. Extra för den som hinner och vill: Implementera en strategi där datorn vinner varje gång om denne får börja


Ladda ner ppt "Några småsaker switch break, continue, goto Kommentarer."

Liknande presentationer


Google-annonser