Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen For, Continue | Control Statements
C Basics

book
For, Continue

For Loop

The for loop incorporates the counter's initialization, the condition to exit the loop, and the counter's update.

python
for (initialization; condition; update)
{
// loop body
}

Let's take the example from the previous lesson (displaying array elements) and reframe it using a for loop:

c

Main

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

Loop's Flexibility

You can use any valid expression as the update counter. This means the counter can adapt based on any valid rule, such as (++x * 3) - 5.

Furthermore, the counter can increment by characters instead of numbers.

c

Main

copy
#include <stdio.h>

int main()
{
for (char ch = 'a'; ch <= 'z'; ch++)
{
printf("ASCII value for %c is %d\n", ch, ch);
}
return 0;
}
12345678910
#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

Keep in mind that characters are stored as numbers in memory.

Even if you leave out parts of the loop, like the counter initialization, the program will still compile. However, the semicolon ; remains essential:

c

Main

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

You can use the comma , to separate parts within the loop:

c

Main

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

In loops, both the break and continue commands come in handy. While the break statement forces an exit from the loop, the continue command prompts a skip to the subsequent iteration.

Consider a program designed to exclude negative integers, utilizing the continue operator:

c

Main

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

New Operators

The following operators can also function as expressions to update the counter:

OperatorExpression ExampleDescription
+=a += 5Equivalent to a = a + 5
-=a -= 5Equivalent to a = a - 5
*=a *= 5Equivalent to a = a * 5
/=a /= 5Equivalent to a = a / 5
%=a %= 5Equivalent to a = a % 5

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 6

Fragen Sie AI

expand
ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

some-alt