程序流程控制课件.ppt
4.4.3for語句形式二:intsum=0;inti=1;for(;i=100;) sum+=i++;for語句中省去了運算式1和運算式3,迴圈變數的設置在for語句之前完成,迴圈變數的修改在循環體內的sum+=i++;語句中執行。4.4.3for語句形式三:intsum=0;inti=1;for(;;){ sum+=i++; if(i==101) break;}for語句的運算式全部省去,由循環體中的語句實現迴圈變數的遞增修改和迴圈條件的判斷。4.4.3for語句形式四:intsum=0;for(inti=1;i=100;sum+=i,i++);循環體是空語句,本應在循環體中執行的累加在運算式3中完成了,注意空語句後分號不可少,否則將把後面的cout語句當成循環體來執行。反之,若循環體非空時,不能在運算式括弧後加分號,這樣,編譯器會認為循環體是空語句。4.4.3for語句for語句可與while、do-while語句相互嵌套,構成多重迴圈,以下都是合法的嵌套。形式一:for(){ … while() {…} …}4.4.3for語句形式二:do{…for() {…}…}while();形式三:while(){…for(){…}…}形式四:for(){…for() {…}}4.4.3for語句【例4.17】編程求出小於n的所有素數。分析:對小於n的所有數進行測試:for(inti=2;in;i++){ //測試i是否為素數; //若i為素數則輸出i;}測試i是否為素數方法是:用2,3,…,i-1這些數逐個去除i,只要被其中一個數整除,則i就不是素數。4.4.3for語句#includeiostream#includecmathusingnamespacestd;intmain(){ intn; cout請輸入一個正整數:endl; cinn; for(inti=2;in;i++){//判斷2、3、...、n-1是否為素數 intj=2; while(jii%j!=0)//判斷i是否能被2~i-1整除 j++; if(j==i) //i是素數 couti;} coutendl; return0;}4.4.3for語句【例4.18】列印如下九九乘法表。1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=143*7=214*7=285*7=356*7=427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=814.4.3for語句分析:九九乘法表共有九行,第i行上有i個式子,用二重for迴圈完成,外層for迴圈控制共輸出九行;內層for迴圈控制每行的輸出。for(inti=1;i=9;i++){ for(intj=1;j=i;j++) //{列印第i行上的第j個式子;} //換行;}4.4.3for語句#includeiostreamusingnamespacestd;intmain(){ for(inti=1;i=9;i++){ for(intj=1;j=i;j++) coutj*i=i*j; coutendl; } return0;}4.4.3for語句三種迴圈控制語句小結:while、do-while、for迴圈語句,三者語句形式不同,相互之間有一定的區別,但主要結構都是由迴圈控制