天天看點

初識C語言之循環控制篇——帶你探索程式設計世界無限循環!

目錄

​​循環語句​​

​​while​​

​​do ..... while​​

​​while與do ....while比較​​

​​for循環語句​​

​​三種循環語句的比較​​

​​循環嵌套​​

​​循環嵌套執行個體​​

​​1.使用嵌套語句輸出金字塔形狀​​

​​2.列印乘法口訣表​​

​​轉移語句​​

​​goto語句​​

​​break語句​​

​​continue語句​​

​​每文一語​​

循環語句

程式在運作時可以通過判斷、檢驗條件作出選擇。此處,程式還必須能夠重複,也就是反複執行一段指令,直到滿足某個條件為止。例如,要計算一個公司的消費總額,就要将所有的消費加起來。

這種重複的過程就稱為循環。C語言中有3種循環語句:while、do-while和for循環語句。循環結構是結構化程式設計的基本結構之一,是以熟練掌握循環結構是程式設計的基本要求。

while

初識C語言之循環控制篇——帶你探索程式設計世界無限循環!
初識C語言之循環控制篇——帶你探索程式設計世界無限循環!

舉例:使用while為使用者提供菜單顯示。 

初識C語言之循環控制篇——帶你探索程式設計世界無限循環!

使用while為使用者提供菜單顯示效果 

初識C語言之循環控制篇——帶你探索程式設計世界無限循環!
初識C語言之循環控制篇——帶你探索程式設計世界無限循環!

do ..... while

初識C語言之循環控制篇——帶你探索程式設計世界無限循環!

使用while循環計算從1到100的累加。

初識C語言之循環控制篇——帶你探索程式設計世界無限循環!

五個注意

初識C語言之循環控制篇——帶你探索程式設計世界無限循環!

while與do ....while比較

初識C語言之循環控制篇——帶你探索程式設計世界無限循環!
初識C語言之循環控制篇——帶你探索程式設計世界無限循環!

for循環語句

初識C語言之循環控制篇——帶你探索程式設計世界無限循環!

使用while循環計算從1到100的累加。

初識C語言之循環控制篇——帶你探索程式設計世界無限循環!
初識C語言之循環控制篇——帶你探索程式設計世界無限循環!

省略表達式1

int sum=0;
int i=0;   //将循環控制變量拿到循環語句外聲明并賦初值
  
for   ( ;i<=10 ;i++) 
{
  sum+=i;
}
  
cout <<sum << endl;      

省略表達式1和3

int sum=0;
int i=0;  //賦初值
  
for(; i<=10 ; )
{
  sum+=i;
  i++; //改變循環變量
}
  
cout <<sum << endl;      
int sum=0;
int i=0;  //賦初值
  
while(i<=10 )
{
  sum+=i;
  i++; //改變循環變量
}
  
cout <<sum << endl;      

三種循環語句的比較

前面介紹了3種可以執行循環操作的語句,這3種循環都可用來解決同一問題。一般情況下這三者可以互相代替。下面是對這3種循環語句在不同情況下的比較。

þwhile和do-while循環隻在while後面指定循環條件,在循環體中應包含使循環趨于結束的語句(如i++或者i=i+1等);for循環可以在表達式3中包含使循環趨于結束的操作,可以設定将循環體中的操作全部放在表達式3中。是以for語句的功能更強,凡用while循環能完成的,用for循環都能實作。

þ用while和do-while循環時,循環變量初始化的操作應在while和do-while語句之前完成;而for語句可以在表達式1中實作循環變量的初始化。

þwhile循環、do-while循環和for循環,都可以用break語句跳出循環,用continue語句結束本次循環(break和coutinue語句将在本文後續内容中進行介紹)。

循環嵌套

初識C語言之循環控制篇——帶你探索程式設計世界無限循環!
初識C語言之循環控制篇——帶你探索程式設計世界無限循環!
初識C語言之循環控制篇——帶你探索程式設計世界無限循環!

循環嵌套執行個體

1.使用嵌套語句輸出金字塔形狀

#include<stdio.h>
int main()
{
    int i, j, k;        /*定義變量i,j,k為基本整型*/
    for (i = 1; i <= 5; i++)        /*控制行數*/
    {
        for (j = 1; j <= 5-i; j++)  /*空格數*/
            printf(" ");
        for (k = 1; k <= 2 *i - 1; k++) /*顯示*号的數量*/
            printf("*");
        printf("\n");
    }
    return 0;
}      
初識C語言之循環控制篇——帶你探索程式設計世界無限循環!

2.列印乘法口訣表

#include<stdio.h>
int main()
{
    int iRow, iColumn;  /*iRow為行,iColum為列*/
    for (iRow = 1; iRow <= 9; iRow++)   /*for循環iRow為乘法口訣表中的行數*/
    {
        for (iColumn = 1; iColumn <= iRow; iColumn++)/*根據iRow,iColum取值循環計算*/
        {
            printf("%d*%d=%d ", iRow,iColumn,iRow *iColumn);    /*輸出結果*/
        }
        printf("\n");   /*進行換行*/
    }
    return 0;
}      
初識C語言之循環控制篇——帶你探索程式設計世界無限循環!

轉移語句

goto語句

goto語句為無條件轉向語句,可以使程式立即跳轉到函數内部的任意一條可執行語句。goto關鍵字後面帶一個辨別符,該辨別符是同一個函數内某條語句的标号。标号可以出現在任何可執行語句的前面,并且以一個冒号“:”作為字尾。goto語句的一般形式為:

goto 辨別符;

goto後的辨別符就是要跳轉的目标,當然這個辨別符要在程式的其他位置給出,但是其辨別符要在函數内部。函數的内容将會在後面章節進行介紹,在此對其簡單了解即可。例如:

goto Show;

printf("the message before ShowMessage");

Show:

  printf("ShowMessage");

上述代碼中,goto後的Show為跳轉的辨別符,而其後Show:代碼表示goto語句要跳轉的位置。這樣在上面的語句中第一個printf函數不會執行,而會執行第二個printf函數。

break語句

有時會遇到這樣的情況,不顧表達式檢驗的結果而強行終止循環,這時可以使用break語句。break語句終止并跳出循環,繼續執行後面的代碼。break語句的一般形式為:

break;

break語句不能用于循環語句和switch語句之外的任何其他語句中。例如在while循環語句中使用break語句:

while(1)

{

  printf("Break");

  break;

}

在代碼中,雖然while語句是一個條件永遠為真的循環,但是在其中使用break語句使得程式流程跳出循環。

continue語句

在某些情況下,程式需要傳回到循環頭部繼續執行,而不是跳出循環。continue語句的一般形式是:

continue;

其作用就是結束本次循環,即跳過循環體中尚未執行的部分,接着執行下一次的循環操作

了解這些結構的使用方法,可以在程式功能上節約很多的時間,無須再一條一條進行操作。通過對3種循環語句的比較,可以了解到不同語句的使用差別,也可以發現三者的共同之處。最後介紹了有關轉移語句的内容。學習轉移語句使得程式設計更為靈活,使用continue語句可以結束本次循環操作而不終止整個循環,使用break語句可以結束整體循環過程,使用goto語句可以跳轉到函數體内的任何位置。

每文一語

繼續閱讀