迴圈控制結構程式(初學者)
阿新 • • 發佈:2019-01-12
迴圈結構是程式中一種很重要的結構,其特點是在給定條件成立時,反覆執行某程式段,直到條件不成立為止。給定的條件稱為迴圈條件,反覆執行的程式段稱為迴圈體。C語言提供了多種迴圈語句,可以組成各種不同形式的迴圈結構。
(1)用goto語句和if語句構成迴圈;
(2)用while語句;
(3)用do-while語句;
(4)用for語句;
1、goto語句及goto語句構成迴圈
goto語句是一種無條件轉移語句。使用格式為:goto 語句標號;
其中標號是一個有效的識別符號加上一個“:”一起出現在函式內某處,執行goto後,程式將跳轉到該標號處並執行其後語句。另外標號必須與goto語句同處一個函式中,但可以不在一個迴圈層中。通常goto語句與if語句連用,當滿足某一條件時,程式跳到標號處執行。
注意:goto語句通常不用,主要因為它將使程式層次不清,且不易讀,但在多層巢狀退出時,用goto語句則比較合理。
例:用goto語句和if語句構成迴圈
#include<stdio.h> int main() { int i,sum=0; i=1; loop:if(i<=100) { sum=sum+i; i++; goto loop; } printf("%d\n",sum); }
while語句
while語句一般形式為:while(表示式)語句
其中表達式是迴圈條件,語句為迴圈體。
while語句語義為:計算表示式的值,當值為真(非0)時,執行迴圈體語句。其執行過程如圖:
注:如果表示式的值一開始就為0,則語句一次也不會被執行。
例:
include<stdio.h> int main() { int i,sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf("%d\n",sum); }
錯誤示例:死迴圈
#include<stdio.h> int main() { int i,sum=0; i=1; while(i<=100) //{ sum=sum+i; i++; //} printf("%d\n",sum); }
原因:加了//後,sum=sum+i變為迴圈語句,則i<=100永遠為真,陷入死迴圈。
補例:統計從鍵盤輸入一行字元的個數。
#include<stdio.h> void main() { int n=0; printf("input a string:\n"); while(getchar()!='\n') { n++; } printf("%d",n); }