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

bookFor, Continue

For-loop

for-loopen innehåller räknarens initiering, villkor för att avsluta loopen samt räknarens uppdatering.

main.c

main.c

copy
123
for (initialization; condition; update) { // Loop body }

Vi tar exemplet från föregående lektion (visning av arrayelement) och omformulerar det med en for-loop:

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { int array[] = { 3, 6, 2, 134, 45, 2, 564, 8, 3, 531 }; for (int i = 0; i < 10; i++) { printf("Index of element: %d\tValue of element: %d\n", i, array[i]); } return 0; }

Du kan använda vilket giltigt uttryck som helst som update counter. Detta innebär att räknaren kan anpassas baserat på vilken giltig regel som helst, såsom (++x * 3) - 5. Dessutom kan räknaren öka med tecken istället för siffror.

Main.c

Main.c

copy
123456789
#include <stdio.h> int main() { for (char ch = 'a'; ch <= 'z'; ch++) { printf("ASCII value for %c is %d\n", ch, ch); } return 0; }
Note
Notering

Observera att tecken lagras som siffror i minnet.

Även om du utelämnar delar av loopen, såsom räkneinitiering, kommer programmet ändå att kompileras. Dock är semikolonet ; fortfarande nödvändigt:

Main.c

Main.c

copy
1234567891011
#include <stdio.h> int main() { int i = 0; // without counter initialization for (printf("It`s count initialization, but printf...\n"); i <= 4; i++) { printf("i = %d\n", i); } return 0; }

Du kan använda kommatecknet , för att separera delar inom loopen:

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { int i; int n; for (i = 0, n = 5; i <= 5; i++, n++) { printf("i = %d\t n = %d\n", i, n); } return 0; }

Continue

I loopar är både kommandona break och continue användbara. Medan break-satsen tvingar ett avbrott från loopen, gör continue-kommandot att exekveringen hoppar till nästa iteration.

Tänk på ett program som är utformat för att exkludera negativa heltal, med hjälp av continue-operatorn:

Main.c

Main.c

copy
123456789101112131415161718
#include <stdio.h> int main() { int array[] = { 124, 235, -321, 32, 54, -549, 23445, 5534, -433 }; printf("Positive elements of array:\n"); for (int i = 0; i < 10; i++) { if (array[i] < 0) { continue; } printf("%d ", array[i]); } return 0; }

Följande operatorer kan också fungera som uttryck för att uppdatera räknaren.

question mark

Vilken effekt har continue-satsen i loopen nedan?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 6

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

bookFor, Continue

Svep för att visa menyn

For-loop

for-loopen innehåller räknarens initiering, villkor för att avsluta loopen samt räknarens uppdatering.

main.c

main.c

copy
123
for (initialization; condition; update) { // Loop body }

Vi tar exemplet från föregående lektion (visning av arrayelement) och omformulerar det med en for-loop:

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { int array[] = { 3, 6, 2, 134, 45, 2, 564, 8, 3, 531 }; for (int i = 0; i < 10; i++) { printf("Index of element: %d\tValue of element: %d\n", i, array[i]); } return 0; }

Du kan använda vilket giltigt uttryck som helst som update counter. Detta innebär att räknaren kan anpassas baserat på vilken giltig regel som helst, såsom (++x * 3) - 5. Dessutom kan räknaren öka med tecken istället för siffror.

Main.c

Main.c

copy
123456789
#include <stdio.h> int main() { for (char ch = 'a'; ch <= 'z'; ch++) { printf("ASCII value for %c is %d\n", ch, ch); } return 0; }
Note
Notering

Observera att tecken lagras som siffror i minnet.

Även om du utelämnar delar av loopen, såsom räkneinitiering, kommer programmet ändå att kompileras. Dock är semikolonet ; fortfarande nödvändigt:

Main.c

Main.c

copy
1234567891011
#include <stdio.h> int main() { int i = 0; // without counter initialization for (printf("It`s count initialization, but printf...\n"); i <= 4; i++) { printf("i = %d\n", i); } return 0; }

Du kan använda kommatecknet , för att separera delar inom loopen:

Main.c

Main.c

copy
123456789101112
#include <stdio.h> int main() { int i; int n; for (i = 0, n = 5; i <= 5; i++, n++) { printf("i = %d\t n = %d\n", i, n); } return 0; }

Continue

I loopar är både kommandona break och continue användbara. Medan break-satsen tvingar ett avbrott från loopen, gör continue-kommandot att exekveringen hoppar till nästa iteration.

Tänk på ett program som är utformat för att exkludera negativa heltal, med hjälp av continue-operatorn:

Main.c

Main.c

copy
123456789101112131415161718
#include <stdio.h> int main() { int array[] = { 124, 235, -321, 32, 54, -549, 23445, 5534, -433 }; printf("Positive elements of array:\n"); for (int i = 0; i < 10; i++) { if (array[i] < 0) { continue; } printf("%d ", array[i]); } return 0; }

Följande operatorer kan också fungera som uttryck för att uppdatera räknaren.

question mark

Vilken effekt har continue-satsen i loopen nedan?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 6
some-alt