The FOR keyword.


The for keyword is used to repeat a block of code many times.


Basic principles

Say you wanted to print all the numbers between 1 and 10, you could write:
	main()
        {
	   int count=1;

	   printf("%d\n", count++);
	   printf("%d\n", count++);
	   printf("%d\n", count++);
	   printf("%d\n", count++);
	   printf("%d\n", count++);
	   printf("%d\n", count++);
	   printf("%d\n", count++);
	   printf("%d\n", count++);
	   printf("%d\n", count++);
	   printf("%d\n", count++);
        }
As you can see this program would NOT be very practical if we wanted 1000 numbers. The problem can be solved with the for statement as below.
	main()
        {
	   int count;

           for ( count=1 ; count <= 10 ; count++) printf("%d\n", count);
        }
The for statement can be broken down into 4 sections:

count=1
is the initalisation.

count <= 10
An expression. The for statement continues to loop while this statement remains true

count++
increament or decreament.

printf("%d\n", count)
the statement to execute.


Repeating several lines of code

The previous example showed how to repeat ONE statement. This example shows how many lines can be repeated.
	main()
        {
	   int count, sqr;

           for ( count=1 ; count <= 10 ; count++) 
           {
	      sqr=count * count;
              printf( " The square of");
	      printf( " %2d", count);
	      printf( " is %3d\n", sqr);
           }
        }
The { and } following the for statement define a
block of statements.

More detail

The for statement performs the following functions while looping.
	for (expression_1 ; expression_2 ; expression_3) statement ;
  1. Executes expression_1.

  2. Executes statement.
  3. Executes expression_3.
  4. Evaluates expression_2.

    • If TRUE, Jumps to item 2.
    • If FALSE, Stops looping.
Any of the three expressions can be missing, if the first or third is missing, it is ignored. If the second is missing, is is assumed to be TRUE.

The following example is an infinite loop:

	main()
	{
	   for( ; ; ) puts(" Linux rules!");
	}

Examples:

Basic for example.
Advanced for example.

See also:


Top Master Index Keywords Functions


Martin Leslie

lue='2'>stat only
authorThomas Gleixner <tglx@linutronix.de>2016-09-21 09:39:00 +0200
committerThomas Gleixner <tglx@linutronix.de>2016-09-21 09:39:00 +0200
commit0bf71e4d02ffec8ab9a6adecca61d3eed74fc99d (patch)
tree9028192abac063b183d1901fbfa38a3aa6e40251
parent5372e054a1928fe704cf0a5e2e139645a777b50a (diff)
parente2a738f7a88f32622684d972d654a9fed026555f (diff)

Merge branch 'smp/for-block' into smp/hotplug
Bring in the block hotplug states for consistency.
Diffstat
-rw-r--r--include/linux/cpuhotplug.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h