第五章 循環結構程序設計

循環機構程序設計設計

章節結構

  • 爲何須要循環
  • 用while語句實現循環
  • 用do...while語句實現循環
  • 用for語句實現循環
  • 幾種循環的比較
  • 改變循環執行的狀態
  • 循環程序舉例

用while語句實現循環

while語句的通常形式: while (表達式) 語句code

語句就是循環體get

表達式也稱爲循環條件表達式。執行循環體的次數就是由循環條件控制的。it

while語句:只有當循環條件表達式爲真(即給定的條件成立),就執行循環體語句for循環

while循環的特色:先判斷條件表達式,後執行循環體語句。程序設計

while語句:在執行while語句時,先檢查循環條件表達式的值,當爲非0值(即真)時,就執行while語句中的循環體語句;當表達式爲0(假)時,不執行循環提語句。class

用do...while語句實現循環

do...while語句的通常形式:變量

do
    語句
while (表達式)

語句就是循環體。循環

do...while語句的特色:先執行一次指定的循環體語句,而後判別表達式,當表達式的值爲**非零(「真」)**時,返回從新執行循環體語句,如此反覆,直到表達式的值等於「0」(「假」)爲止,此時循環結束。程序

用for語句實現循環

for語句的通常形式

for(表達式1;表達式2;表達式3;)
    語句

表達式1:初始條件,只執行一次。能夠爲零個、一個或多個變量設置初值

表達式2:循環條件表達式,用來判斷是否繼續循環。在每次執行循環體前先執行此表達式,決定是否繼續執行循環。

表達式3:循環迭代,做爲循環的調整,例如使循環變量增值,它是在執行完循環體後才進行的

語句:循環體

執行順序:初始條件——循環條件表達式——循環體——循環迭代——循環條件表達式——循環體——循環迭代

  • 表達式1和表達式3能夠是一個簡單的表達式,也能夠是逗號表達式,即包含一個以上的簡單表達式,中間用逗號間隔。

  • 逗號表達式內按自左至右順序求解,整個逗號表達式的值爲最右邊的表達式的值。

for循環的相關應用

  • 每讀入一個字符後當即輸出該字符,直到輸入一個「換行」爲止。

    for(;(c = getchar()) != '\n';)
        printf("%c",c);
  • 不斷輸入字符,將它們的ASCII碼相加,直到輸入一個「換行」符爲止。

    for(i=0;(c = getchar()) != '\n';i+=c );

for九 for通常(形式),1省,2省,3也省;一、3省了,均可省;1能夠是循環變量初值的賦值表達式,也能夠不是;一、3可簡可逗

  • (1) for語句的通常形式以下:
    for(表達式1;表達式2;表達式3) 語句 能夠改寫爲while循環的形式: 表達式1;while 表達式2 {語句;表達式3}
  • (2) 「表達式1」能夠省略,即不設初值,單表達式1後的分號不能省略。
  • (3) 表達式2也能夠省略,即不用表達式2來做爲循環條件表達式,不設置和檢查循環的條件。
    此時循環無終止地進行下去,也就是認爲表達式2始終爲真
  • (4) 表達式3也能夠省略,可是程序設計者應另外設法保證循環能正常結束。
    不然循環提無止境地執行下去
  • (5) 若是表達式1和表達式3都沒有,只有表達式2,即只給循環條件
  • (6) 能夠將3個表達式均可省略,這也會無終止的執行循環體語句
  • (7) 表達式1能夠是設置循環變量初值的賦值表達式,也能夠是與循環變量無關的其餘表達式
  • (8) 表達式1和表達式3能夠是一個簡單的表達式,也能夠是逗號表達式,即包含一個以上的簡單表達式,中間用逗號間隔

在逗號表達式內按自左至右的順序(左結合性)求解,整個逗號表達式的值爲最右邊的表達式的值,同時注意前一個會對後一個表達式產生影響 for(i=0;i< 5;i++,i++)等價於for(i=0;i< 5;i = i + 2)

  • (9) 表達式2通常是關係表達式或邏輯表達式,但也能夠是數值表達式或字符表達式,只要其值爲非零,就執行循環體

常見的兩個for循環判斷條件

  • for(i = 0;(c = getchar()) != '\n'; i+=c)
    其做用是不斷輸入字符,將它們的ASCII碼相加,直到輸入一個「換行」符爲止
  • for(;(c = getchar()) != '\n';) printf("%c",c);
    做用是每讀入一個字符後當即輸出該字符,直到輸入一個「換行」爲止

循環的嵌套

一個循環體內又包含另外一個完整的循環結構,稱爲循環的嵌套。內嵌的循環中還能夠嵌套循環,這就是多層循環

幾種循環的比較

  • (1)在while循環和do...while循環中,只在while後面的括號內指定循環條件,所以爲了循環能正常結束,應在循環體中包含使循環趨於結束的語句

  • (2)而for循環能夠在表達式3中包含使循環趨於結束的操做,甚至能夠將循環體中的操做所有放到表達式3中。所以for語句的功能更強,凡用while循環能完成的,用for循環都能實現

  • (3)用while和do...while循環時,循環變量初始化的操做應在while和do...while語句以前完成。而for語句能夠在表達式1中實現循環變量的初始化。

  • (4)while循環、do...while循環和for循環均可用break語句跳出循環,用continue語句結束本次循環。

改變循環執行的狀態

用break語句提早終止循環

兩個做用:

  • (1)用break語句能夠使流程跳出switch結構,繼續執行switch語句下面的一個語句。

  • (2)break語句還能夠用來從循環體內跳出循環體,即提早結束循環,接着執行循環下面的語句。

用continue語句提早結束本次循環

不終止整個循環的操做,而只是提早結束本次循環,而接着執行下次循環,這時就能夠使用continue語句。

break語句和continue語句的區別

continue語句只結束本次循環,而不是終止整個循環的執行。

而break語句則時結束整個循環過程,再也不判斷執行循環的條件是否成立。

相關文章
相關標籤/搜索