?? 33.htm
字號:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<META NAME="Author" CONTENT="wdg">
<META NAME="GENERATOR" CONTENT="Mozilla/4.03 [en] (Win95; I) [Netscape]">
<TITLE>33</TITLE>
</HEAD>
<BODY>
1.3 控制流程語句
<P> Turbo C2.0提供了豐富、靈活的控制流程語句, 主要有:條件語句、
循環(huán)語
<BR>句和開關語句。下面將對這些語句作詳細介紹。
<BR>
<P> 1.3.1 條件語句
<BR> 象其它語言一樣Turbo C2.0也提供條件語句。在Turbo
C2.0中條件語句的一
<BR>般形式為:
<BR> if(表達式)
<BR> 語句1;
<BR> else
<BR> 語句2;
<BR> 上述結構表示: 如果表達式的值為非0(TURE)即真, 則執(zhí)行語句1,
執(zhí)行完語
<BR>句1從語句2后開始繼續(xù)向下執(zhí)行; 如果表達式的值為0(FALSE)即假, 則跳過語句
<BR>1而執(zhí)行語句2。所謂表達式是指關系表達式和邏輯表達式的結合式, 關于表達式
<BR>前面已作過介紹, 這是不再重復。
<BR> 注意:
<BR> 1. 條件執(zhí)行語句中"else 語句2;"部分是選擇項, 可以缺省,
此時條件語句
<BR>變成:
<BR> if(表達式) 語句1;
<BR> 表示若表達式的值為非0則執(zhí)行語句1 , 否則跳過語句1繼續(xù)執(zhí)行。
<BR> 2. 如果語句1或語句2有多于一條語句要執(zhí)行時, 必須使用"{"和"}"
把這些
<BR>語句包括在其中, 此時條件語句形式為:
<BR> if(表達式)
<BR> {
<BR> 語句體1;
<BR> }
<BR> else
<BR> {
<BR> 語句體2;
<BR> }
<BR> 3. 條件語句可以嵌套, 這種情況經(jīng)常碰到, 但條件嵌套語句容易出錯,
其
<BR>原因主要是不知道哪個if對應哪個else。
<BR> 例如:
<BR> if(x>20||x<-10)
<BR> if(y<=100&&y>x)
<BR> printf("Good");
<BR> else
<BR> printf("Bad");
<BR> 對于上述情況, Turbo C2.0規(guī)定: else語句與最近的一個if語句匹配,
上例
<BR>中的else與if(y<=100&&y>x)相匹配。為了使else與if(x>20||x<-10)相匹配,
必
<BR>須用花括號。如下所示:
<BR> if(x>20||x<-10)
<BR> {
<BR> if(y<=100&&y>x)
<BR>
printf("Good");
<BR> }
<BR> else
<BR> printf("Bad");
<BR> 4. 可用階梯式if-else-if結構。
<BR> 階梯式結構的一般形式為:
<BR> if(表達式1)
<BR> 語句1;
<BR> else if(表達式2)
<BR> 語句2;
<BR> else if(表達式3)
<BR> 語句3;
<BR> .
<BR> .
<BR> .
<BR> else
<BR> 語句n;
<BR> 這種結構是從上到下逐個對條件進行判斷, 一旦發(fā)現(xiàn)條件滿點足就執(zhí)行與它
<BR>有關的語句, 并跳過其它剩余階梯; 若沒有一個條件滿足, 則執(zhí)行最后一個else
<BR>語句n。最后這個else常起著"缺省條件"的作用。
<BR> 同樣, 如果每一個條件中有多于一條語句要執(zhí)行時, 必須使用"{"和"}"把這
<BR>些語句包括在其中。
<BR>
<P> 1.3.2 循環(huán)語句
<BR> Turbo C2.0提供三種基本的循環(huán)語句: for語句、while語句和do-while語句。
<BR>
<BR> 1.3.2.1 for循環(huán)
<BR> for循環(huán)是開界的。它的一般形式為:
<BR> for(<初始化>; <條件表過式>; <增量>)
<BR> 語句;
<BR> 初始化總是一個賦值語句, 它用來給循環(huán)控制變量賦初值;
條件表達式是一
<BR>個關系表達式, 它決定什么時候退出循環(huán); 增量定義循環(huán)控制變量每循環(huán)一次后
<BR>按什么方式變化。這三個部分之間用";"分開。
<BR> 例如:
<BR> for(i=1; i<=10; i++)
<BR> 語句;
<BR> 上例中先給i賦初值1, 判斷i是否小于等于10, 若是則執(zhí)行語句,
之后值增
<BR>加1。再重新判斷, 直到條件為假, 即i>10時, 結束循環(huán)。
<BR> 注意:
<BR> 1. for循環(huán)中語句可以為語句體, 但要用"{"和"}"將參加循環(huán)的語句括起來。
<BR> 2. for循環(huán)中的"初始化"、"條件表達式"和"增量"都是選擇項,
即可以缺省,
<BR>但";"不能缺省。省略了初始化, 表示不對循環(huán)控制變量賦初值。 省略了條件
<BR>表達式, 則不做其它處理時便成為死循環(huán)。省略了增量, 則不對循環(huán)控制變量進
<BR>行操作, 這時可在語句體中加入修改循環(huán)控制變量的語句。
<BR> 3. for循環(huán)可以有多層嵌套。
<BR> 例16:
<BR> main()
<BR> {
<BR> int i, j, k;
<BR> printf("i j
k\n");
<BR> for (i=0; i<2;
i++)
<BR>
for(j=0; j<2; j++)
<BR>
for(k=0; k<2; k++)
<BR>
printf(%d %d %d\n", i, j, k);
<BR> }
<BR> 輸出結果為:
<BR> i j k
<BR> 0 0 0
<BR> 0 0 1
<BR> 0 1 0
<BR> 0 1 1
<BR> 1 0 0
<BR> 1 0 1
<BR> 1 1 0
<BR> 1 1 1
<P> 1.3.2.2 while循環(huán)
<BR> while循環(huán)的一般形式為:
<BR> while(條件)
<BR> 語句;
<BR> while循環(huán)表示當條件為真時, 便執(zhí)行語句。直到條件為假才結束循環(huán)。
并
<BR>繼續(xù)執(zhí)行循環(huán)程序外的后續(xù)語句。
<BR> 例17:
<BR> #include<stdio.h>
<BR> main()
<BR> {
<BR> char c;
<BR> c='\0';
/*初始化c*/
<BR> while(c!='\X0D')
/*回車結束循環(huán)*/
<BR>
c=getche(); /*帶回顯的從鍵盤接收字符*/
<BR> }
<BR> 上例中, while循環(huán)是以檢查c是否為回車符開始, 因其事先被初始化為空,
<BR>所以條件為真, 進入循環(huán)等待鍵盤輸入字符; 一旦輸入回車, 則c='\X0D', 條件
<BR>為假, 循環(huán)便告結束。
<BR> 與for循環(huán)一樣, while循環(huán)總是在循環(huán)的頭部檢驗條件,
這就意味著循環(huán)可
<BR>能什么也不執(zhí)行就退出。
<BR> 注意:
<BR> 1. 在while循環(huán)體內也允許空語句。
<BR> 例如:
<BR> while((c=getche())!='\X0D');
<BR> 這個循環(huán)直到鍵入回車為止。
<BR> 2. 可以有多層循環(huán)嵌套。
<BR> 3. 語句可以是語句體, 此時必須用"{"和"}"括起來。
<BR> 例18:
<BR> #include<stdio.h>
<BR> main()
<BR> {
<BR> char c, fname[13];
<BR> FILE *fp;
/*定義文件指針*/
<BR> printf("File
name:"); /*提示輸入文件名*/
<BR> scanf("%s",
fname); /*等待輸入文件名*/
<BR> fp=fopen(fname,
"r"); /*打開文件只讀*/
<BR> while((c=fgetc(fp)!=EOF)
/*讀取一個字符并判斷是否到文件結束*/
<BR>
putchar(c); /*文件未結束時顯示該字符*/
<P>
<P> }
<P> 1.3.2.3 do-while 循環(huán)
<BR> do-while 循環(huán)的一般格式為:
<BR> do
<BR> 語句;
<BR> while(條件);
<BR> 這個循環(huán)與while循環(huán)的不同在于: 它先執(zhí)行循環(huán)中的語句,
然后再判斷條
<BR>件是否為真, 如果為真則繼續(xù)循環(huán); 如果為假, 則終止循環(huán)。因此, do-while循
<BR>環(huán)至少要執(zhí)行一次循環(huán)語句。
<BR> 同樣當有許多語句參加循環(huán)時, 要用"{"和"}"把它們括起來。
<BR>
<P> 1.3.3 開關語句
<BR> 在編寫程序時, 經(jīng)常會碰到按不同情況分轉的多路問題,
這時可用嵌套if
<BR>-else-fi語句來實現(xiàn), 但if-else-if語句使用不方便, 并且容易出錯。對這種情
<BR>況, Turbo C2.0提供了一個開關語句。開關語句格式為:
<BR> switch(變量)
<BR> {
<BR>
case 常量1:
<BR>
語句1或空;
<BR>
case 常量2:
<BR>
語句2或空;
<BR>
.
<BR>
.
<BR>
.
<BR>
case 常量n;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -