標籤:break can 輸入 gif 選擇 邏輯 log pre not
- 一、for
- 二、while
- 三、do while
- 四、continue
- 五、break
一、for
請在螢幕上輸出1000個*號
printf("*************************....");
#include "stdio.h"void main(){ int i; for(i=1;i<=1000;i++){ printf("*"); }}
for(運算式A;運算式B;運算式C)
{
要重複執行的代碼塊D;
}
1、運算式A先執行,且只執行一次
2、運算式B再執行,如果為真則執行代碼塊D
3、再執行運算式C,再選擇運算式B,回到第2步
4、ABCD都可以省去 for(;i>=100;);
5、運算式1通常用來給迴圈變數賦初值,一般是賦值運算式i=1 i=-1,j=100
6、運算式2通常是迴圈條件,一般為關聯運算式或邏輯運算式i>=5 i>5&&j<=8
7、運算式3通常可用來修改迴圈變數的值,一般是複合指派陳述式i++,i--, i+=5,j++
8、這三個運算式都可以是逗號運算式,即每個運算式都可由多個運算式組成。三個運算式都是任選項,都可以省略。
#include "stdio.h"void main(){ int i,j; for(i=1;i<=10;i++) { printf("%d \n",i); }}
#include "stdio.h"void main(){ int i,j; for(i=-10;i<=10;i++) { printf("%d \n",i); }}
#include "stdio.h"void main(){ int i,j; for(i=1;i<=10;i=i+3) { printf("%d \n",i); }}
#include "stdio.h"void main(){ int i,j; for(i=10;i>0;i--) { printf("%d \n",i); }}
#include "stdio.h"void main(){ int i,j; for(i=10,j=1;i>0;i--,j++) { printf("%d + %d = 11 \n",i,j); }}
#include "stdio.h"void main(){ int i=1; for(;i<=10;i++) { printf("\n %d",i); }}
#include "stdio.h"void main(){ int i=1; for(;i<=10;) { printf("\n %d",i); i++; }}
#include "stdio.h"void main(){ int i=1; for(;;) { printf("\n %d",i); i++; if(i>10)break; }}
for語句中的各運算式都可省略,但分號間隔符不能少。如:
for(;運算式;運算式)省去了運算式1。
for(運算式;;運算式)省去了運算式2。
for(運算式;運算式;)省去了運算式3。
for(;;)省去了全部運算式。
在迴圈變數已賦初值時,可省去運算式1,如省去運算式2或運算式3則將造成無限迴圈, 這時應在迴圈體內設法結束迴圈。
迴圈體(要重複的語句)可以是空語句。
練習:計算出1-100之間奇數之和。1+3+5+7....99=?
#include "stdio.h"void main(){ //練習:計算出1-100之間奇數之和。1+3+5+7....99=? int i,s=0; for(i=1;i<=100;i++) { if(i%2==1){ s=s+i; } } printf("結果:%d",s);}
2500
#include "stdio.h"void main(){ //練習:計算出1-100之間奇數之和。1+3+5+7....99=? int i,s=0; for(i=1;i<=100;i=i+2) { s=s+i; } printf("結果:%d",s);}
2500
二、while
while語句的一般形式為:
初值;
while(運算式A)
{
運算式的值為真時要重複的語句塊;B
步長;
}
其中運算式是迴圈條件
要重複的語句塊和步長都為迴圈體
while語句的語義是:計算運算式的值,當值為真(非0)時, 執行迴圈體語句。
1、程式先判斷A是否為真,如果為真則執行迴圈體B
2、當執行完迴圈體後再回到第1步
3、當運算式A為假時結束迴圈
#include "stdio.h"void main(){ int i=1; while(i<=10) { printf("%d \n",i); i=i+1; }}
while語句中的運算式一般是關係表達或邏輯運算式,只要運算式的值為真(非0)即可繼續迴圈
迴圈體如包括有一個以上的語句,則必須用{}括起來, 組成複合陳述式。
應注意迴圈條件的選擇以避免死迴圈。
練習:
練習:計算出1-100之間奇數之和。1+3+5+7....99=?
/* Note:Your choice is C IDE */#include "stdio.h"void main(){ int i=1,s=0; while(i<=100) { s=s+i; i=i+2; } printf("s=%d",s);}
2500
練習:列出1-1000之間所有能同時被3與7整除的數。
三、do while
do-while語句的一般形式為:
do
{
要重複的語句塊;
}while(運算式);
其中“要重複的語句塊”是迴圈體
運算式是迴圈條件
語義是:先執行迴圈體語句一次,再判斷運算式的值,若為真(非0)則繼續迴圈,否則終止迴圈。
/* Note:Your choice is C IDE */#include "stdio.h"void main(){ int i=1,s=0; do { s=s+i; i++; }while(i<=5); printf("%d",s);}//i=1 2 3 4 5 6//s=0 1 3 6 10 15
15
適用於必須要執行一次的應用,如輸入一個合格的數字。
#include "stdio.h"void main(){ int n; do { printf("請輸入1-7之間的數:"); scanf("%d",&n); }while(n<1||n>7);}
四、continue
在for,while,do-while中遇到continue表示結束當次迴圈,繼續下次迴圈。
#include "stdio.h"void main(){ int i; for(i=1;i<=10;i++) { printf("●"); printf("□"); }}
#include "stdio.h"void main(){ int i; for(i=1;i<=5;i++) { if(i%2==0) { continue; //結束當次,繼續下一次 } printf("□"); } //i=1 2 3 4 5 6 □□□}
五、break
在for,while,do-while,switch中遇到break跳出當前迴圈。
#include "stdio.h"void main(){ int i; for(i=1;i<=5;i++) { if(i%2==0) { break; //結束當前迴圈 } printf("□"); } }
□
在無條件迴圈中退出
#include "stdio.h"void main(){ int i=1,s=0; while(1) { s=s+i; i++; if(i>100) break; } printf("%d",s);}
C語言 第五章 迴圈結構