目錄
前置:關系操作符和邏輯操作符
關系操作符
邏輯操作符
其他補充知識
分支語句:
一、if類
基本式:if...
變式1:if...else...
變式2:if...else if...else...
變式3:嵌套
二、switch
?循環語句:
一、while
二、for
三、do...while
四、提前離開循環
前置:關系操作符和邏輯操作符
關系操作符
C語言中用于判斷兩個事件之間的關系的操作符主要有六個
- <? ? ? ? 小于
- >? ? ? ? 大于
- <=? ? ? 小于等于
- >=? ? ? 大于等于
- ==? ? ? 等于
- !=? ? ? ?不等于
需要注意的是 “==” 才是用來判斷是否相等的符號, “=”? 表示的是賦值的運算
上述六個操作符當判斷的結果成立,即結果為真時會返回1,否則返回0
邏輯操作符
C語言中用于邏輯判斷主要有三個
- &&? ? ? ? 與
- ||? ? ? ? ? ?或
- !? ? ? ? ?非
與(&&):當符號兩邊同時為真時總結果才為真
(a > 0) && ( b > 0)
當a大于0,并且b也大于0時總結果才為真
或(||):當符號兩邊有任意一個為真時總結果就可以為真
(a > 0) ||?( b > 0)
當a大于0,或者b大于0時總結果就是真
非(!):改變單個條件的真假,如果是真就變成假,如果是假就變成真
a = 0;
b = !a;
因為a等于0,所以!a等于1,所以b等于1
其他補充知識
C語言邏輯運算符還有?個特點,它總是先對左側的表達式求值,再對右邊的表達式求值,這個順序是保證的。如果左邊的表達式滿足邏輯運算符的條件,就不再對右邊的表達式求值。這種情況稱為“短路”。
分支語句:
一、if類
if在英語語境里就有“如果”的意思,可以用它來判斷選擇程序的執行路徑,其具體使用為
基本式:if...
if( 判斷的條件結果為真 )
{執行的操作...
}
當判斷的條件結果為真,即結果非0時就會進入大括號內執行代碼,否則就會跳過大括號內的代碼往下執行
變式1:if...else...
if( 判斷的條件不等于0 )
{執行的操作...
}
else
{執行的操作...
}
if和else可以看做將全集分成兩份互斥的事件,當if內的條件不成立時必然會執行else內的代碼
變式2:if...else if...else...
if( 判斷的條件不等于0 )
{執行的操作...
}
else if( 判斷的條件不等于0 )
{執行的操作...
}
else
{執行的操作...
}
else if 相當于把全集再添加一個事件,這個事件同樣與另外兩個事件互斥,可以添加多個else if來繼續在全集內添加與其他事件互斥事件
變式3:嵌套
if( 判斷的條件結果為真 )
{if( 判斷的條件結果為真 ){執行的操作...}else{執行的操作...}
}
else
{if( 判斷的條件結果為真 ){執行的操作... }else{執行的操作...}
}
if類可以存在嵌套,當沒有大括號時,else總是和最近的前一個if作為一體
二、switch
switch在英語語境里就有“選擇”的意思,也可以用它來判斷選擇程序的執行路徑
它和if...else if...else功能一樣,不過把多重的 else if 改成更易用、可讀性更好的形式。
switch( 用于作為路徑選擇的參數 )
{case 得到的參數是變量1:執行的操作...break;case 得到的參數是變量2:執行的操作...break;...default:執行的操作...
}
上述偽代碼通過判斷用于作為路徑選擇的變量的不同值執行相應的case里的代碼,當所有的case都不滿足時則執行default里的內容
注:
- switch 后的 用于作為路徑選擇的變量 必須是整型表達式
- case 后的值,必須是整形常量表達式
- 每一個 case 語句中的代碼執行完成后,需要加上 break ,才能跳出這個switch語句。如果某一個 case 語句的后邊沒有 break 語句,代碼會繼續玩下執行,有可能執行其他 case 語句中的代碼,直到遇到 break 語句或者 switch 語句結束。
?循環語句:
一、while
while語句是一個簡單的循環語句,當判斷的條件結果為真時就進入while語句內執行響應的操作,當執行到大括號內最后一條代碼時返回最開始的條件判斷,如果判斷的條件仍然為真就再次進入while語句內執行響應的操作,如此反復執行直到判斷的條件結果為假時才跳出循環
while( 判斷的條件結果為真 )
{執行的操作...
}
二、for
for循環語句也是C語言中的常見循環語句,其語法結構為
for( 循環變量初始化; 循環結束條件; 每執行完一次for循環循環變量的調整 )
{執行的操作...
}
整個循環的過程中,循環變量初始化部分只被執行1次,其他兩個參數會被反復執行。三個參數并不是一定都要使用的,可以空著不寫,例如當循環結束的條件為空時表示該循環為死循環。
三、do...while
while 和 for 這兩種循環都是先判斷,條件如果滿足就進入循環,執行循環語句,如果不滿足就跳 出循環; 而?do...while 循環則是先直接進入循環體,執行循環語句,然后再執行?while 后的判斷表達式,表達式為真,就會進行下一次,表達式為假,則不再繼續循環。所以在 do...while 語句中循環體是至少執行一次的,這是 do...while 循環比較特殊的地方。其語法結構為
do
{執行的操作...
}while( 判斷的條件結果為真 )
四、提前離開循環
1.break
執行break語句可以做到終止該語句所在的循環
2.continue
執行continue語句可以做到跳過本次循環中continue之后的語句,直接開始執行下一次的循環
3.return
對于有返回值的函數,執行return語句可以做到終止該語句所在的函數,直接返回函數值
4.goto
使用goto語句可以使程序跳到任意你想讓它跳轉執行的位置,但是不建議使用goto,因為 goto 語句如果使用的不當,就會導致在函數內部隨意亂跳轉,打亂程序的執行流程,所以建議是能不用盡量不去使用;但是 goto 語句也不是一無是處,在多層循環的代碼中,如果想快速跳出使用?goto 就非常的方便了。
int main()
{int i = 0;for( i = 0; i < 100; i++ ){執行的操作...要去的地方:{執行的操作...} if( i == 50){goto 要去的地方:}執行的操作...}
}注意:“要去的地方”在實際使用時根據自己的需要起名字