C程序在默認情況下,是自頂向下執行,從main()的起始位置開始,逐條地執行語句,直到main()函數的最後。
但是實際情況中卻很少這樣,C語言提供了各種程序控制語句,以控制程序的執行次序。
流程控制語句有哪些呢?
if語句。
for語句。
while語句。
do...while語句。
1,for語句
for語句是一種C編程結構,它將一個由一條或多條語句組成的代碼塊執行特定的次數。它有時候也被稱為for
循環,因為程序通常循環執行這種語句多次。
for語句的結構:
for(initial;condition;increment)
{
statement;
}
其中initial、condition、increment都是表達式,而statement為單條語句或復合語句。
程序執行到for語句時,將發生以下事件:
a,執行表達式initial。initial通常是一條賦值語句,將一個變量設置為特定的值。
b,判斷condition。condition通常是一個關系表達式。
如果condition為假(即等於0),for語句結束,並接著執行statement語句後面的
第一條語句。
如果condition為真(即不等於0),則執行statement語句。
c,執行表達式increment,然後返回到第2步。
簡單的for循環
#include/* for循環示例 */ int i; //在聲明全局變量 i //打印1到20的數字 void main(void) { for (int i = 1; i <= 20;i++) // 向上計數 { printf("%d\n",i); } system("pause"); }
運行後的結果
for語句常常被用來“向上計數”,也就是將計算器從一個值增加到另一個值,我們也
可以使用“倒計數”,也就是將計算器變量遞減。
<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICA8c3Ryb25nPrW5vMbK/Twvc3Ryb25nPjxicj4KPC9wPgo8cD48cHJlIGNsYXNzPQ=="brush:java;">#include
運行後結果
增量為2
#includevoid main() { int i = 0; /* for語句非常靈活,若已經在程序前面初始化了計數器,則可以省略初始化表達式,但不能省略分隔符。 */ for (; i <= 20; i += 2)//向上計數,但增量為2 { printf("%d\n", i); } system("pause"); }
運行後結果
另一種寫法
#includevoid main() { int i = 0; for (; i <= 20;)//向上計數,但增量為2 { //i++ 寫在這裡也是可以的 printf("%d\n", i++); //i++ 放在這裡也是也是可以的 } system("pause"); }
運行結果
深入理解for
#includevoid main() { /* 用於終止for循環的表達式也可以是任何表達式。只要該表達式為真(非零),for語句便會繼續執行。 */ int i = 0; int j = 15; for (; i <= 20 && j>=0;)//向上計數,但增量為2 { j--; //i++ 寫在這裡也是可以的 printf("%d\n", i++); //i++ 放在這裡也是也是可以的 } system("pause"); }
運行後結果
#includevoid draw_box(int, int); void main() { //打印出8行25列的X draw_box(8, 25); system("pause"); } void draw_box(int row, int column) { int col; //定義中間變量 for (; row > 0;row--) { for (col = column; col > 0;col--) { printf("x"); } printf("\n"); //每行打印完畢後,添加換行符使其換行 } }
運行結果
while循環
#includeint count; /* 打印1到20的數字 */ void main() { count = 1;//初始化 while (count<=20) { printf("%d\n",count); count++; } system("pause"); }
運行結果
for和while的結合
#define _CRT_SECURE_NO_WARNINGS #includeint array[5]; //聲明一個容量為5的數組 void main(void) { //聲明並初始化2個變量 int ctr = 0, nbr=0; printf("This program prompts you to enter 5 numbers \n"); printf("Each number should be from 1 to 10 \n"); while (ctr < 5) { nbr = 0; while (nbr<1|| nbr>10) { printf("\n Enter number %d of 5:",ctr+1); scanf("%d",&nbr); } array[ctr] = nbr;//給數組賦值 ctr++; //增量1 } //輸出數組 for (ctr = 0; ctr < 5;ctr++) { printf("Value %d is %d\n",ctr+1,array[ctr]); } system("pause"); }
運行結果