While, Do-While
Forestil dig et scenarie, hvor det er nødvendigt at udføre bestemte opgaver gentagne gange, såsom at læse data fra en sensor, forsøge adgang med adgangskoder eller tælle ord i en sætning. I disse situationer anvendes løkker.
Løkker gør det muligt at køre specifikke kodeblokke flere gange, uanset om det er ti, hundrede eller tusindvis af gange. Forståelse af løkkekonceptet er afgørende i programmering. Dette kursus gennemgår de grundlæggende løkker: while-løkke, do-while-løkke og for-løkke.
While-løkke
Denne løkke fortsætter med at køre så længe en bestemt betingelse er opfyldt. Når betingelsen ikke længere er opfyldt, stopper løkken.
main.c
123while (condition) { // Loop body }
En grundlæggende anvendelse af en løkke er at vise antallet af dens gentagelser:
Main.c
1234567891011121314#include <stdio.h> int main() { int iterations = 1; while (iterations <= 10) { printf("%d\n", iterations); iterations++; // `iterations = iterations + 1;` } return 0; }
For at standse denne løkke er en afsluttende betingelse nødvendig. En enkel metode er at bruge en tæller til at holde styr på, hvor mange gange løkken kører.
En iteration henviser til en enkelt cyklus inden for en løkke. Hvis løkken kører kodeblokken 10 gange, er der gennemført 10 iterationer.
Linjen iterations++; er afgørende, da den øger tælleren (int iterations) ved hver gennemløb. Tælleren fastsætter derefter betingelserne for at afslutte løkken.
Det er afgørende at fastsætte betingelser for at afslutte løkken. Undlades dette, vil det resultere i en uendelig løkke.
Main.c
12345678910111213141516#include <stdio.h> int main() { int array[] = { 3, 6, 2, 134, 45, 2, 564, 8, 3, 531 }; int i = 0; // Index of array while (i < 10 ) { printf("Index of element: %d\tValue of element: %d\n", i, array[i]); i++; // `i = i + 1` } return 0; }
Fokus på udtrykket array[i].
Her angiver variablen i indekset for elementerne i array[].
Ved hver gennemløb øges variablen i med 1. Dette betyder, at udtrykket array[i] ved hver gennemløb tilgår det næste element i arrayet:
Den væsentligste forskel mellem do-while og while løkker er, at førstnævnte garanterer mindst én udførelse, selv hvis betingelsen oprindeligt er falsk.
main.c
123do { // Do something } while (condition);
Denne type løkke er nyttig til at skabe grundlæggende brugergrænseflader. For eksempel ved anmodning om en adgangskode, da den giver mulighed for gentagne forespørgsler, indtil input er gyldigt. En do-while-løkke er ideel her, da prompten skal vises mindst én gang, mens en while-løkke anvendes, når du kun skal ind, hvis en forudgående betingelse er opfyldt.
Main.c
123456789101112#include <stdio.h> int main() { int i = 0; do { printf("Condition `i == 1` is false, because i = 0, but loop is working...\n"); } while (i == 1); printf("Loop is over\n"); return 0; }
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 2.63
While, Do-While
Stryg for at vise menuen
Forestil dig et scenarie, hvor det er nødvendigt at udføre bestemte opgaver gentagne gange, såsom at læse data fra en sensor, forsøge adgang med adgangskoder eller tælle ord i en sætning. I disse situationer anvendes løkker.
Løkker gør det muligt at køre specifikke kodeblokke flere gange, uanset om det er ti, hundrede eller tusindvis af gange. Forståelse af løkkekonceptet er afgørende i programmering. Dette kursus gennemgår de grundlæggende løkker: while-løkke, do-while-løkke og for-løkke.
While-løkke
Denne løkke fortsætter med at køre så længe en bestemt betingelse er opfyldt. Når betingelsen ikke længere er opfyldt, stopper løkken.
main.c
123while (condition) { // Loop body }
En grundlæggende anvendelse af en løkke er at vise antallet af dens gentagelser:
Main.c
1234567891011121314#include <stdio.h> int main() { int iterations = 1; while (iterations <= 10) { printf("%d\n", iterations); iterations++; // `iterations = iterations + 1;` } return 0; }
For at standse denne løkke er en afsluttende betingelse nødvendig. En enkel metode er at bruge en tæller til at holde styr på, hvor mange gange løkken kører.
En iteration henviser til en enkelt cyklus inden for en løkke. Hvis løkken kører kodeblokken 10 gange, er der gennemført 10 iterationer.
Linjen iterations++; er afgørende, da den øger tælleren (int iterations) ved hver gennemløb. Tælleren fastsætter derefter betingelserne for at afslutte løkken.
Det er afgørende at fastsætte betingelser for at afslutte løkken. Undlades dette, vil det resultere i en uendelig løkke.
Main.c
12345678910111213141516#include <stdio.h> int main() { int array[] = { 3, 6, 2, 134, 45, 2, 564, 8, 3, 531 }; int i = 0; // Index of array while (i < 10 ) { printf("Index of element: %d\tValue of element: %d\n", i, array[i]); i++; // `i = i + 1` } return 0; }
Fokus på udtrykket array[i].
Her angiver variablen i indekset for elementerne i array[].
Ved hver gennemløb øges variablen i med 1. Dette betyder, at udtrykket array[i] ved hver gennemløb tilgår det næste element i arrayet:
Den væsentligste forskel mellem do-while og while løkker er, at førstnævnte garanterer mindst én udførelse, selv hvis betingelsen oprindeligt er falsk.
main.c
123do { // Do something } while (condition);
Denne type løkke er nyttig til at skabe grundlæggende brugergrænseflader. For eksempel ved anmodning om en adgangskode, da den giver mulighed for gentagne forespørgsler, indtil input er gyldigt. En do-while-løkke er ideel her, da prompten skal vises mindst én gang, mens en while-løkke anvendes, når du kun skal ind, hvis en forudgående betingelse er opfyldt.
Main.c
123456789101112#include <stdio.h> int main() { int i = 0; do { printf("Condition `i == 1` is false, because i = 0, but loop is working...\n"); } while (i == 1); printf("Loop is over\n"); return 0; }
Tak for dine kommentarer!