在C語言中loop是什麼意思

在C語言中loop是什麼意思

loop是一個在編程中習慣用的語句標號。且長配合goto語句使用。由於現在編程不提倡使用goto語句,c中的語句標號也好少用到。

1、另附上goto,break, continue和return用法:===========================================程序中的語句通常總是按順序方向, 或按語句功能所定義的方向執行的。

2、假如需要改變程序的正常流向, 可以使用本小節介紹的轉移語句。

3、在C語言中提供了4種轉移語句: goto,break, continue和return。

4、 其中的return語句只能出現在被調函數中, 用於返回主調函數,我們將在函數一章中具體介紹。

5、 本小節介紹前三種轉移語句。

6、 語句 goto語句也稱為無條件轉移語句,其一般格式如下: goto 語句標號; 其中語句標號是按標識符規定書寫的符號, 放在某一語句行的 前面,標號後加冒號(:)。

7、語句標號起標識語句的作用,與goto 語句配合使用。

8、 如: label: i++; loop: while(x<7); C語言不限制程序中使用標號的次數,但各標號不得重名。

9、goto語句的語義是改變程序流向, 轉去執行語句標號所標識的語句。

10、 goto語句通常與條件語句配合使用。

11、可用來實現條件轉移, 構成循環,跳出循環體等功能。

12、 但是,在結構化程序設計中一般不主張使用goto語句, 以免造成程序流程的混亂,使理解和調試程序都產生困難。

13、 統計從鍵盤輸入一行字符的個數。

14、 #include"stdio.h" void main(){   int n=0;   printf("input a string ");   loop: if(getchar()!=' ')   { n++; goto loop;   }   printf("%d",n); } int n=0; printf("input a string "); loop: if(getchar()!=' ') {   n++;   goto loop; } printf("%d",n); 本例用if語句和goto語句構成循環結構。

15、當輸入字符不為' '時即執行n++進行計數,然後轉移至if語句循環執行。

16、直至輸入字符為' '才停止循環。

17、 break語句 break語句只能用在switch 語句或循環語句中, 其作用是跳出switch語句或跳出本層循環,轉去執行後面的程序。

18、由於break語句的轉移方向是明確的,所以不需要語句標號與之配合。

19、break語句的一般形式為: break; 上面例題中分別在switch語句和for語句中使用了break 語句作為跳轉。

20、使用break語句可以使循環語句有多個出口,在一些場合下使編程更加靈活、方便。

21、 continue語句 continue語句只能用在循環體中,其一般格式是: continue; 其語義是:結束本次循環,即不再執行循環體中continue 語句之後的語句,轉入下一次循環條件的判定與執行。

22、應注重的是, 本語句只結束本層本次的循環,並不跳出循環。

23、 void main(){   int n;   for(n=7;n<=100;n++)   { if (n%7!=0)   continue; printf("%d ",n);   } } 輸出100以內能被7整除的數。

24、 int n; for(n=7;n<=100;n++) {   if (n%7!=0) continue;   printf("%d ",n); } 本例中,對7~100的每一個數進行測試,如該數不能被7整除,即模運算不為0,則由continus語句轉去下一次循環。

25、只有模運算為0時,才能執行後面的printf語句,輸出能被7整除的數。

26、 #include"stdio.h" void main(){   char a,b;   printf("input a string: ");   b=getchar();   while((a=getchar())!=' '){ if(a==b){   printf("same character ");   break; }b=a;   } } 檢查輸入的一行中有無相鄰兩字符相同。

27、 char a,b; printf("input a string: "); b=getchar(); while((a=getchar())!=' '){   if(a==b){ printf("same character "); break;   }b=a; } 本例程序中,把第一個讀入的字符送入b。

28、然後進入循環,把下一字符讀入a,比較a,b是否相等,若相等則輸出提示串並中止循環,若不相等則把a中的字符賦予b,輸入下一次循環。

29、 輸出100以內的素數。

30、素數是隻能被1 和本身整除的數。

31、可用窮舉法來判定一個數是否是素數。

32、 void main(){   int n,i;   for(n=2;n<=100;n++){ for(i=2;i  if(n%i==0) break;   if(i>=n) printf(" %d",n); }   } int n,i;   for(n=2;n<=100;n++){ for(i=2;i  if(n%i==0) break;   if(i>=n) printf(" %d",n); } 本例程序中,第一層循環表示對1~100這100個數逐個判定是否是素數,共循環100次,在第二層循環中則對數n用2~n-1逐個去除,若某次除盡則跳出該層循環,説明不是素數。

33、 假如在所有的數都是未除盡的情況下結束循環,則為素數,此時有i>=n, 故可經此判定後輸出素數。

34、然後轉入下一次大循環。

35、實際上,2以上的所有偶數均不是素數,因此可以使循環變量的步長值改為2,即每次增加2,此外只需對數n用2~n去除就可判定該數是否素數。

36、這樣將大大減少循環次數,減少程序運行時間。