二、預處理命令
c語言中,程式結構包含順序結構、選擇結構、迴圈結構、跳轉語句(break,continue,return,goto)
選擇結構
c語言常用的語句有if語句和switch-case語句
1.2.1if語句
a)第一種形式:
if
(條件表示式)
原理:只有當條件表示式成立時,執行語句塊,否則不執行
條件表示式可以是變數,可以關係表示式
b)第二種形式
if
(條件表示式)
else
原理:只有當條件表示式成立時,執行語句塊1,否則執行語句塊
c)第三種形式
if
(條件表示式1
)else
if(條件表示式2
)else
if(條件表示式3
)else
原理:從條件表示式1開始,進行判斷,如果成立,執行語句塊1,其他的
語句都不執行(跳出if語句),否則,接著往下判斷,知道找到
條件成立的語句,如果條件都不滿足,則執行else語句
注意:else跟跟離它最近的if語句配對
符合就近原則
1.2.2switch-case語句
形式:
switch
(整型常量表示式)
原理:整型常量表示式 最終的結果必須是整型常量
因為要跟case後面的資料進行匹配,判斷是否相等
如果相等,就會執行該case後面的語句塊,知道遇到
} 結束,如果都不跟case後面的資料匹配的話
則,執行default後面的語句
do-while語句,while語句,for語句
1)do-while
形式:
do
while
(條件判斷)
;
原理:先執行迴圈體,然後進行條件判斷,如果條件成立,則接著
返回去執行迴圈體,如果條件不成立,則不會再去執行迴圈體
本質:不管條件判斷有沒有成立,迴圈體都會執行一次
2)while
形式:
while
(條件判斷)
原理:先進行條件判斷,如果條件成立,則執行迴圈體,
如果條件不成立,則不執行迴圈體
本質:while語句,有可能一次迴圈體都不會執行
3)do-while 和while語句的區別:
do-while 語句,先執行,後判斷,至少會執行一次迴圈體
while 語句:先判斷,後執行,可能一次迴圈體都不會執行
補充: while(1) 死迴圈
跳出迴圈體,break語句
練習:密碼門,你忘記密碼了,你家密碼4位,
如果你輸入的密碼是對,門開了
如果你輸入的密碼是錯誤的,門不會開
3)for語句
1 2 5 4
形式:for(賦值表示式;條件表示式;迴圈變數表示式)
賦值表示式:迴圈變數賦初值
條件表示式:迴圈體可以結束的條件
迴圈變數表示式:可以讓迴圈體達到結束的條件
注意:死迴圈:while(1)
for(;?
賦值表示式;
形式:
for
(賦值表示式;條件表示式;迴圈變數表示式)
迴圈的巢狀:
形式:
for
(賦值表示式;條件表示式;迴圈變數表示式)
}
原理:迴圈巢狀,先執行最外一層迴圈,接著執行裡面的迴圈的語句
直達裡面的迴圈語句不滿足條件,然後在執行外層迴圈,
依次下去
for
(i=1
;i<=
4;i++
)
break,continue,return ,goto
1)break
原理:跳轉,
適用於:switch-case,迴圈結構(do-while,while,for語句)
注意:if 語句裡不能用的,除非和if搭配使用在迴圈結構裡
實質:break只能跳出當前迴圈,或者當前選擇結構
結束迴圈語句,(結束的是離它最近的迴圈語句)
2)continue
原理:繼續
適用於:迴圈結構
規則:結束本次迴圈,當前迴圈結束,接著進行下一輪迴圈
3)return
形式: return 表示式,return;
第一種形式表示的是,返回乙個值,先計算表示式的的值,再返回數值
第二種形式表示的是結束函式
在主函式裡面 ,返回值,返回給了系統
在子函式裡面,返回值,給上一級函式
在乙個函式裡面,一旦遇到return語句,函式結束
不管函式裡面有幾個return語句,遇到第乙個return語句,函式結束
4)goto
形式: goto 標籤名;
標籤名符合識別符號的命名規則
本質:真正跳轉語句
原理:程式剛開始執行的時候,遇到標籤名不會去理會,程式執行遇到
goto語句的時候,程式就會轉去執行標籤名下的程式
直到某乙個條件不滿足
注意:只能在同乙個函式跳轉
在程式中,如果goto語句用的太多,會造成程式**混亂
分類:無參巨集定義,帶參巨集定義
概念:用巨集名替換後面一段繁瑣的字串
1)無參巨集定義
形式: 巨集名 字串
指令:define
#define 巨集名 字串
說明: 巨集名符合識別符號的命名規則
巨集名一般大寫,便於和變數名進行區分
注意:巨集定義純替換過程,所定義的字串後面不能加分號
巨集定義可以進行巢狀,但是你所巢狀的巨集名必須在之前定義好
巨集名不是替換列印函式雙引號中內容
如果是多條語句,需在所要替換的字串後面加分號
如果取消巨集定義則用 #undef 你要取消的巨集名
2)帶參巨集定義
形式:巨集名(引數) 字串
指令:define
注意: 巨集名和引數之間不能有空格
不管帶參還是無參,巨集定義都只是乙個純替換的過程
2、檔案包含
概念:將檔案裡面的內容,包含到當前檔案中
<> :表示到系統下搜尋目錄
「」 :表示到工作目錄下去查詢
條件編譯三種形式:
1)第一種形式
#ifdef
程式段1
#else
程式段2
#endif
原理:如果巨集名被定義,則執行程式段1,否則執行程式段2
2)第二種形式
#ifndef
程式段1
#else
程式段2
#endif
原理:如果未定義,則執行程式段1,否則執行程式段2
3)第三種形式
#if 條件表示式
程式段1
#else
程式段2
#endif
原理:條件表示式成立,則執行程式段1
否則執行程式段2
函式與程式結構
4 標頭檔案 5 初始化 6 c預處理器 函式定義形式如下 函式定義 返回值型別 函式名 引數宣告表 return語句 return exp 程式 可以看作變數定義和函式定義的集合。函式之間的通訊可以通過引數 函式返回值以及外部變數進行。被呼叫函式通過return語句向呼叫者返回值。return語句...
函式與程式結構 例題
建立乙個逆波蘭表示法的計算器 eg 1 2 4 5 逆波蘭表示法 12 45 簡單 如下 只能完成基本的加減乘除,取模運算 include include 為了使用atof 函式 include define maxop 100 運算元或運算子的最大長度 define number 0 標識找到乙個...
程式結構與基本語法
includeint main 注 在最新的c標準中,main函式前的型別為int而不是void簡單來說,乙個c程式就是由若干標頭檔案和函式組成。乙個c程式有且只有乙個主函式,即main函式。乙個說明或乙個語句佔一行,例如 包含標頭檔案 乙個可執行語句結束都需要換行。函式體內的語句要有明顯縮排,通常...