第一篇:C語言if語句總結
C語言選擇語句
C語言支持兩種選擇語句:if語句和switch語句。這些語句允許你只有在程序運行時才能。知道其狀態(tài)的情況下,控制程序的執(zhí)行過程。首先看一下if語句的用法:
if語句:
if語句是c語言中的條件分支語句。它能將程序的執(zhí)行路徑分為兩條。if語句的完整格式如下:
if(condition)statement1;;
else statement2;
其中,if和else的對象都是單個語句(statement),也可以是程序塊。條件condition可以是任何返回布爾值的表達式。else子句是可選的。
if語句的執(zhí)行過程如下:如果條件為真,就執(zhí)行if的對象(statement1);否則,執(zhí)行else的對象(statement2)。任何時候兩條語句都不可能同時執(zhí)行。考慮下面的例子:
int a,b;
if(a < b)a = 0;else b = 0;
本例中,如果a小于b,那么a被賦值為0;否則,b被賦值為0。任何情況下都不可能使a 和b都被賦值為0。
記住,直接跟在if 或else語句后的語句只能有一句。如果你想包含更多的語句,你需
要建一個程序塊,如下面的例子:
int bytesAvailable;
if(bytesAvailable > 0){
ProcessData();
bytesAvailable-= n;
} else
waitForMoreData();
這里,如果變量bytesAvailable 大于0,則if塊內的所有語句都會執(zhí)行。嵌套 if 語句
嵌套(nested)if語句是指該if語句為另一個if或者else語句的對象。在編程時經常要用到嵌套if語句。當你使用嵌套if語句時,需記住的要點就是:一個else語句總是對應著和它同一個塊中的最近的if語句,而且該if語句沒有與其他else語句相關聯(lián)。下面是一個例子: if(i == 10){
if(j < 20)a = b;
if(k > 100)c = d;
// this if is
else a = c;
// associated with this else } else a = d;
// this else refers to if(i == 10)
如注釋所示,最后一個else語句沒有與if(j <20)相對應,因為它們不在同一個塊(盡
管if(j <20)語句是沒有與else配對最近的if語句)。最后一個else語句對應著if(i==10)。
內部的else語句對應著if(k>100),因為它是同一個塊中最近的if語句。if-else-if 階梯
基于嵌套if語句的通用編程結構被稱為 if-else-if 階梯。它的語法如下: if(condition)
statement;else if(condition)
statement;else if(condition)
statement;else
statement;
條件表達式從上到下被求值。一旦找到為真的條件,就執(zhí)行與它關聯(lián)的語句,該階梯的其他部分就被忽略了。如果所有的條件都不為真,則執(zhí)行最后的else語句。最后的else語句經常被作為默認的條件,即如果所有其他條件測試失敗,就執(zhí)行最后的else語句。如果沒有最后的else語句,而且所有其他的條件都失敗,那程序就不做任何動作。.下面的程序通過使用if-else-if階梯來確定某個月是什么季節(jié)。// Demonstrate if-else-if statements.main(){
int month = 4;// April
if(month == 12 || month == 1 || month == 2)
printf(“Winter”);
else if(month == 3 || month == 4 || month == 5)
printf(“Spring”);
else if(month == 6 || month == 7 || month == 8)
printf(“Summer”);
else if(month == 9 || month == 10 || month == 11)
printf(“Autumn”);
else
printf(“Bogus Month”);
}
該程序產生如下輸出:
Spring.試驗這個程序。你將看到,不管你給month什么值,該階梯中有而且只有一個語句執(zhí)行。
小結: if語句的三種形式:
a)if(表達式)語句
b)if(表達式)語句1 else 語句2 c)
if(表達式1)語句1
else if(表達式2)語句2
……
else 語句
第二篇:C語言常用語句總結
C語言常用語句總結
一:常用函數(shù)
1、putchar函數(shù):
putchar函數(shù)(字符輸出函數(shù)):向終端輸出一個字符。一般形式為:
putchar(c)
//
輸出字符變量c的值。
==
printf(“%c”,c)
2、getchar函數(shù)
getchar函數(shù)(字符輸入函數(shù)):從終端輸入一個字符。getchar函數(shù)沒有參數(shù),一般形式為:
c=getchar()
//將輸入的字符賦值給c
3、printf函數(shù)
printf函數(shù)(格式輸入函數(shù)):向終端輸出若干個任意類型的數(shù)據。printf的一般格式為:
printf(“格式控制”,對應變量名)
//
例如:printf(”%d,%cn”,i,c)
4、scanf函數(shù)
scanf(格式輸入函數(shù)):從終端輸入若干個任意類型的數(shù)據。一般形式為:
scanf(“格式控制”,&變量名)
二:基本語句(除if語句外,switch和三種循環(huán)語句都需要{大括號}的支持)
(1)條件語句if和switch
1、if語句: ********************* if(表達式)語句1;
語句2;
// if下的各獨立語句用分號分隔。********************* if(表達式)語句1; else 語句2;
********************* if(表達式1)
語句1;
else if(表達式2)
//
每一個if與他最近的一個else對應。
語句2;
....else if(表達式n)
語句n;
else
語句n+1; ********************* If語句的嵌套 if(表達式)
if(表達式)語句1
else語句2 else
if(表達式)語句3
else語句4
2、switch語句
switch(表達式){ case 常量表達式1:
語句1
case常量表達式2:
語句2
//
每一個case表達式后都需要加上break跳出,否則
case常量表達式n:
將依次執(zhí)行下去。
語句n default :
//
大括號劃分switch內語句
語句n+1 }
(2)三種循環(huán)語句
1、while語句
while語句用來實現(xiàn)“當型”循環(huán)結構。一般形式如下: while(表達式)
//
當表達式非0值時(邏輯表達式),執(zhí)行while語句中的內嵌套語句,{
先判斷后執(zhí)行。
語句1;
//
分號間隔每一個獨立語句。
語句2;
//
大括號劃分出while內語句。}
2、do… while 語句
do… while 語句 先執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立。一般形式為: do { 循環(huán)體語句1;
//
分號間隔每一個獨立語句。循環(huán)體語句2;
//
大括號劃分do內語句。} while(表達式)//
當表達式非0值時(邏輯表達式),執(zhí)行while語句中的內嵌套語句,先判斷后執(zhí)行。
3、for語句
for語句不僅可以用于循環(huán)次數(shù)已經確定的循環(huán),而且可以用于循環(huán)次數(shù)不確定的循環(huán)而只給出循環(huán)結束條件。
for(循環(huán)變量賦初值;循環(huán)終止條件;循環(huán)變量增值){
語句1;
//
分號間隔每一個獨立語句。
語句2;
//
大括號劃分for內語句。}
它的執(zhí)行過程如下:
(1)、先求解表達式1。
(2)、求解表達式2,若其值為真(值非0),則執(zhí)行for循環(huán)中指定的內嵌語句,然后執(zhí)行下面的(3)。若表達式2為假(值為0),則結束循環(huán),轉到第(5)步。(3)、求解表達式3。
(4)、轉回上面第(2)步繼續(xù)執(zhí)行。
(5)、循環(huán)結束,執(zhí)行for語句下面的一個語句。
(3)其他語句:
1、break語句
break語句可以是流程跳出switch結構,繼續(xù)執(zhí)行switch下面的語句。
break語句也可以用來從循環(huán)體內跳出循環(huán)體,提前結束循環(huán),接著執(zhí)行循環(huán)體下面的語句。
break語句的一般形式為:break;
說明:break語句不能用于循環(huán)語句和switch語句之外的任何其他語句。
2、continue語句
在循環(huán)體中遇到continue語句,程序將跳過continue語句后面尚未執(zhí)行的語句,開始下一次循環(huán),即只結束本次循環(huán)的執(zhí)行,并不終止整個循環(huán)的執(zhí)行。
三:其他語句
1.唯一的三元運算符:條件運算符
表達式:
判斷表達式1?表達式2:表達式3
//
例如:a>b?a:b
(條件成立取表達式2的值,否則取表達式3的 2.宏定義:#define 標識符 字符串
//
例如:#define N 300
定義N為300 3.結構體:
一般形式如下: struct 結構體名 { 類型名1 結構成員名1; 類型名2 結構成員名2; …
類型名n 結構成員名n;
}s;
//
屬于該結構體的變量名(類似于 int a 中a的角色);
引用結構體變量中的數(shù)據:(對結構體成員變量的引用)
1)結構體變量名.成員名 // s.成員名1(引用后即可當普通變量操作)2)指針變量名->成員名 3)(*指針變量名).成員名 4.共同體
一般形式如下:
union 共用體標識名 {
類型名1 共用體成員名1; 類型名2 共用體成員名2。。
類型名n 共用體成員名n;}
共用體變量中成員的引用:
共用體變量名.成員名 指針變量名->成員名(*指針變量名).成員名
三:文件的操作:文件指針實際上是批向一個結構體類型的指針。
(1)
文件的打開,關閉:
FILE *指針變量名; // 定義文件指針
fopen(“文件名”,“文件使用方式”); //(打開文件)例如:fopen(“c:file_a”,”r”);fclose(文件指針)
//(關閉文件)
例如:fclose(fpout);
判斷文件是否能打開,需寫入: FILE * fp;if((fp=fopen(“文件名”,“打開方式”))==NULL)//
打開文件出錯的話 { printf(“cannot open filen”);
exit(0);
//
exit(1)出錯退出。exit(0)正常退出 }
文件打開方式說明:
1.r,凡用“r”打開一個文件時,該文件必須已經存在,且只能從該文件讀出
2.w,用“w”打開的文件只能向該文件寫入。若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經存在,則將該文件刪去,重建一個新文件。
3.a,要向一個已存在的文件追加新的信息,只能用“a ”方式打開文件。但此時該文件必須是存在的,否則將會出錯。
4.+,與上面的字符串組合,以讀和寫的方式打開文件
(2).文件的讀寫
讀寫數(shù)據將通過調用標準輸入輸出函數(shù)來完成。這些函數(shù)主要包括: 1).fgetc()和getc():從制定文件中一次讀取一個字符 fputc()和putc():一次輸出一個字符到指定文件 2).fgets():從指定文件中一次讀取一個字符串 fputs():一次輸出一個字符串到指定文件 3).fread():從指定文件中一次讀取一個數(shù)據塊 fwrite():一次輸出一個數(shù)據塊到指定文件 4).fscanf():從指定文件中按格式讀取數(shù)據
fprintf():按指定格式將數(shù)據輸出到指定文件中
詳細介紹:
1.讀寫字符fgetc和fputc:字符讀寫函數(shù)是以字符(字節(jié))為單位的讀寫函數(shù)。每次可從文件讀出或向文件寫入一個字符。
形式: 字符變量=fgetc(文件指針)例如:ch=fgetc(fp);// 從打開的文件fp中讀取一個字符并送入ch中。
形式: fputc(變量名,文件指針); 例如:
fputc(a,fp)// 把變量a的值寫入fp所指向的文件中。
判斷是否出錯,需寫入:
while((ch=fgetc(fp))!=EOF)// 當文件內容沒有執(zhí)行錯誤時,順利執(zhí)行下一句
2.讀寫字符串fgets和fouts:從指定的文件中讀寫一個字符串到字符數(shù)組中。
形式: fgets(字符數(shù)組名,n,文件指針)其中的n是一個正整數(shù)。表示從文件中讀出的字符串不超過 n-1個字符。在讀入的最后一個字符后加上串結束標志' 主站蜘蛛池模板: 特黄熟妇丰满人妻无码| 久久99精品国产麻豆婷婷洗澡| 永久免费看啪啪网址入口| 级r片内射在线视频播放| 动漫?c?黄扒衣服网站| 日韩av片无码一区二区不卡| 狠狠爱亚洲五月婷婷av| 中国少妇内射xxxx狠干| 亚洲国产精品一区二区成人片不卡| 毛片在线播放a| 粉嫩萝控精品福利网站| 亚洲hdmi高清线| 日本www网站色情乱码| 欧美另类高清zo欧美| 亚洲日韩久久综合中文字幕| 国产亚洲精品久久久久久男优| 久久久综合九色综合88| 欧美色aⅴ欧美综合色| 业余 自由 性别 成熟视频 视频| 亚洲aⅴ在线无码天堂777| 亚洲 国产 韩国 欧美 在线| 香蕉视频www.5.在线观看| 精品久久久噜噜噜久久久| 狠狠色丁香婷婷综合潮喷| 人妻丰满熟妇aⅴ无码| 真实国产老熟女粗口对白| 成年奭片免费观看视频天天看| 影音先锋每日av色资源站| 久久电影网午夜鲁丝片免费| 午夜精品久久久久9999| 免费久久人人爽人人爽av| 国产精品一区波多野结衣| 丰满的少妇xxxxx青青青| 国产成av人片久青草影院| 色噜噜久久综合伊人一本| 2018国产大陆天天弄| 国产麻豆精品av在线观看| 国产精品高清一区二区不卡片| 国产精品美女久久久网av| 色橹橹欧美在线观看视频高清| 成人做受黄大片|