Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära While, Do-While | Styrsatser
C-Grunder

bookWhile, Do-While

Föreställ dig en situation där du behöver upprepa vissa uppgifter, såsom att läsa data från en sensor, försöka ange lösenord eller räkna ord i en mening. I dessa fall används loopar.

Loopar gör det möjligt att köra specifika kodblock flera gånger, oavsett om det är tio, hundra eller tusentals gånger. Att förstå konceptet med loopar är avgörande inom programmering. Denna kurs behandlar de grundläggande looparna: while-loop, do-while-loop och for-loop.

While-loop

Denna loop fortsätter att köras så länge ett specifikt villkor är uppfyllt. När villkoret inte längre är uppfyllt avslutas loopen.

main.c

main.c

copy
123
while (condition) { // Loop body }

Ett grundläggande användningsområde för en loop är att visa antalet upprepningar:

Main.c

Main.c

copy
1234567891011121314
#include <stdio.h> int main() { int iterations = 1; while (iterations <= 10) { printf("%d\n", iterations); iterations++; // `iterations = iterations + 1;` } return 0; }

För att stoppa denna loop är ett avslutningsvillkor nödvändigt. Ett enkelt tillvägagångssätt är att använda en räknare för att hålla reda på hur många gånger loopen körs.

Note
Notera

En iteration avser en enskild cykel inom en loop. Om loopen kör kodblocket 10 gånger har den alltså genomfört 10 iterationer.

Raden iterations++; är avgörande eftersom den ökar räknaren (int iterations) vid varje genomgång. Räknaren används sedan för att ange villkoren för att avsluta loopen.

Note
Notera

Det är nödvändigt att ange villkor för att avsluta loopen. Om detta inte görs leder det till en oändlig loop.

Main.c

Main.c

copy
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; }

Fokusera på uttrycket array[i]. Här betecknar variabeln i indexet för elementen i array[].

Vid varje iteration ökar variabeln i med 1. Detta innebär att uttrycket array[i] vid varje iteration hämtar nästa element i arrayen:

Den avgörande skillnaden mellan do-while- och while-loopar är att den förstnämnda garanterar minst en körning, även om villkoret initialt är falskt.

main.c

main.c

copy
123
do { // Do something } while (condition);

Denna typ av loop är användbar för att skapa grundläggande användargränssnitt. Till exempel vid lösenordsprompt, eftersom den låter dig fortsätta fråga tills inmatningen är giltig. En do-while-loop är idealisk här eftersom prompten måste visas minst en gång, medan en while-loop används när du endast går in om ett förvillkor är uppfyllt.

Main.c

Main.c

copy
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; }
question mark

Vad kommer värdet av x att vara vid den sjätte iterationen?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 2.63

bookWhile, Do-While

Svep för att visa menyn

Föreställ dig en situation där du behöver upprepa vissa uppgifter, såsom att läsa data från en sensor, försöka ange lösenord eller räkna ord i en mening. I dessa fall används loopar.

Loopar gör det möjligt att köra specifika kodblock flera gånger, oavsett om det är tio, hundra eller tusentals gånger. Att förstå konceptet med loopar är avgörande inom programmering. Denna kurs behandlar de grundläggande looparna: while-loop, do-while-loop och for-loop.

While-loop

Denna loop fortsätter att köras så länge ett specifikt villkor är uppfyllt. När villkoret inte längre är uppfyllt avslutas loopen.

main.c

main.c

copy
123
while (condition) { // Loop body }

Ett grundläggande användningsområde för en loop är att visa antalet upprepningar:

Main.c

Main.c

copy
1234567891011121314
#include <stdio.h> int main() { int iterations = 1; while (iterations <= 10) { printf("%d\n", iterations); iterations++; // `iterations = iterations + 1;` } return 0; }

För att stoppa denna loop är ett avslutningsvillkor nödvändigt. Ett enkelt tillvägagångssätt är att använda en räknare för att hålla reda på hur många gånger loopen körs.

Note
Notera

En iteration avser en enskild cykel inom en loop. Om loopen kör kodblocket 10 gånger har den alltså genomfört 10 iterationer.

Raden iterations++; är avgörande eftersom den ökar räknaren (int iterations) vid varje genomgång. Räknaren används sedan för att ange villkoren för att avsluta loopen.

Note
Notera

Det är nödvändigt att ange villkor för att avsluta loopen. Om detta inte görs leder det till en oändlig loop.

Main.c

Main.c

copy
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; }

Fokusera på uttrycket array[i]. Här betecknar variabeln i indexet för elementen i array[].

Vid varje iteration ökar variabeln i med 1. Detta innebär att uttrycket array[i] vid varje iteration hämtar nästa element i arrayen:

Den avgörande skillnaden mellan do-while- och while-loopar är att den förstnämnda garanterar minst en körning, även om villkoret initialt är falskt.

main.c

main.c

copy
123
do { // Do something } while (condition);

Denna typ av loop är användbar för att skapa grundläggande användargränssnitt. Till exempel vid lösenordsprompt, eftersom den låter dig fortsätta fråga tills inmatningen är giltig. En do-while-loop är idealisk här eftersom prompten måste visas minst en gång, medan en while-loop används när du endast går in om ett förvillkor är uppfyllt.

Main.c

Main.c

copy
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; }
question mark

Vad kommer värdet av x att vara vid den sjätte iterationen?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 5
some-alt