迴圈結構程式設計三種迴圈語句

2021-03-04 00:31:16 字數 3055 閱讀 1209

一、迴圈結構(iteration structure)的概述

1.目的

為了解決含有重複處理內容的問題,必須採用迴圈語句(loop statement)來程式設計實現。

2.型別

(1) 當型迴圈結構

(2)直到型迴圈結構

二、迴圈語句

1.while語句

①功能:實現當型迴圈結構。

②形式while(表示式)

③特點:先判斷後執行。

④舉例:(累加和問題)程式設計計算整數1~100的和。

int i ; //迴圈變數

int sum = 0 ; //累加和清0

i = 1 ; //迴圈變數i賦初值

while( i <= 100)

2.do-while語句

①功能:實現直到型迴圈結構。

②形式 dowhile(表示式); //注意最後的分號

③特點:先執行後判斷。

④舉例:修改上例。

/*利用do-while語句程式設計實現整數1~100的和。*/

int i ; //迴圈變數

int sum = 0 ; //累加和清0

i = 1 ; //迴圈變數i賦初值

dowhile(i<=100);//注意最後的分號

3.for語句

①功能:實現當型迴圈結構。

②形式 for(表示式1;表示式2;表示式3)

③特點:先判斷後執行;使用頻率最高。

④舉例:修改上例。

/*使用for語句程式設計計算整數1~100的和。*/

int i ; //迴圈變數

int sum = 0 ; //累加和清0

for( i = 1 ; i <=100 ; i++ )

4.幾種迴圈語句的比較

①由於while語句和for語句均實現當型迴圈結構,兩者是完全等價的。

for(表示式1;表示式2;表示式3)

表示式1 ;

while(表示式2)

②for語句適合迴圈次數事先已知的情況;而while語句和do-while語句適合迴圈次數事先未知的情況。

③當第一次進入迴圈時條件就不滿足,while語句和do-while語句就不等價。除此情況外,while語句和do-while語句均等價。

三、程式舉例

1.迴圈次數已知的累加和問題

①程式設計實現計算100以內偶數的和。

/*方法一:使用for語句*/

sum = 0 ;

for( i = 2 ; i <=100 ; i = i + 2 )

/*方法二:使用while語句*/

sum = 0 ;

i = 2 ;

while( i <=100 )

/*方法三:使用do-while語句*/

sum = 0 ;

i = 2 ;

dowhile(i <= 100) ;

第159頁課後習題4.10、4.11、4.12、4.13屬於迴圈次數已知,計算累加和的問題。參考**

注意:計算累加和時,需要累加和變數清0。

2.迴圈次數已知的累乘積問題

①程式設計計算n!=1*2*3*4*……*n的值。(課本第107頁例題4.10)

要想解決這個問題,需要用到「遞推」的程式設計方法。也就是說,求n!時,先求1!

,用1!*2得到2!,用2!

*3得到3!,以此類推,直到利用(n-1)!*n得到n!

為止,問題即可解決。

/*方法一:利用for語句實現。*/

int i , n ;

long int p = 1 ;

scanf("%d" , &n) ;

for( i = 1 ; i <= n ; i++ )

printf("%d!=%ld\n", n , p );

/*方法二:利用while語句實現。*/

int i , n ;

long int p = 1 ;

scanf("%d" , &n) ;

i = 1 ;

while( i <= n )

printf("%d!=%ld\n", n , p );

/*方法三:利用do-while語句實現。*/

int i , n ;

long int p = 1 ;

scanf("%d" , &n) ;

dowhile( i <= n) ;

printf("%d!=%ld\n", n , p );

第159頁課後習題4.14屬於迴圈次數已知,計算累乘積的問題。參考**

注意:計算累乘積時,需要累乘積變數置1。

3.迴圈次數未知的累加和(累乘積)問題

①這也是累加求和的問題,但不同的是,這裡的迴圈次數是預先未知的,而且累加項以正負交替的規律出現。實現方法,累加項通式term=sign/n表示。其中,sign按+1,-1,+1,-1,……交替變化,可用sign=-sign實現,sign的初值為1;n按1,3,5,7,……變化,可用n=n+2實現,n的初值為1;統計累加項數只有設定乙個計數器變數count即可,初值為0。

詳細演算法描述和**實現參見課本第112頁例題4.12。

注意:①能夠正確得到累加項或累乘項通式。

②計算累加和問題時注意清0,計算累乘積問題時注意置1。

③注意累加項或累乘項是否滿足迴圈終止條件的判斷。

第159頁課後習題 4.15,4.16,4.17 屬於迴圈次數未知,計算累加和的問題。參考**

4.迴圈結構和選擇結構的綜合應用

(1) 猜數字遊戲公升級版:程式設計實現猜數字遊戲,要求所猜數字為1~10之間的整數,遊戲者只有三次機會,猜數字遊戲過程中會根據遊戲者所猜數字的大小給出一定的資訊提示,增強遊戲的趣味性。

#include

#include

#include

main()else if(guess < magic)else

}while( guess!=magic && count <=3 ); //判斷迴圈終止條件,最多三次機會 }

(2)從鍵盤任意輸入乙個正整數,程式設計判斷它是否是素數,若是素數,輸出「yes!」,否則輸出「no!」。(參見課本第127頁例4.19)

迴圈結構程式設計

浙教版義務教育實驗教 科目資訊科技 所選教材 科書九年級資訊科技建議課 所選課題 迴圈結構程式設計 時1課時 課時本案例為第幾 第一課時 適用年級 九年級二 教學設計 知識目使學生了解迴圈結構程式設計的概念。標教學目標 技能目標情感目標教學重 迴圈結構程式設計及流程圖的畫法 教學內容分析 點教學難 ...

實驗三迴圈結構程式設計

一 實驗目的與要求 1 熟練掌握三種迴圈語句的應用。2 熟練掌握迴圈結構的巢狀。二 實驗內容 1 階乘問題 1 輸入n,求n的階乘n n 1 2 n 2 輸入n,求n的階乘和 1!2!n 2 水仙花數問題 1 輸出水仙花數及個數。2 輸入三位數m,n,輸出m n之間的水仙花數及個數,輸出的水仙花數要...

實驗三迴圈結構程式設計

一 實驗目的 1 掌握while do while for語句的使用。2 掌握迴圈體內使用break continue語句的作用。3 掌握迴圈及巢狀迴圈結構的程式設計方法。二 實驗準備 1 c語言實現迴圈的方法 goto 和 if 構成的迴圈 由於goto是無條件轉向,不符合結構化程式設計思想,所以...