C 語言中的 if 語句
這節課我們來學習下程序中另外一個非常重要的語句:if。
1. 語法
if (判斷條件布爾運算)
{
條件成立后運行的語句
}
這里的條件判斷采用了布爾運算,也就是真值和假值兩種情況。當 if 后面放入的條件判斷語句的執行最終結果為真的時候,就會執行花括號中的語句,如果條件語句最終的結果為假,那么就不會執行花括號 中的語句,程序會跳過花括號中的代碼段,繼續執行后面的代碼。
這里給出了真值表,以供大家參考。
A | B | A && B(A與B) | A || B(A或B) | !A(非A) | !B非B) |
---|---|---|---|---|---|
1 | 0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 0 |
0 | 0 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 | 0 |
這個表格給出了基本的條件判斷中條件成立情況。
2. 執行過程
3. 場景
在程序中需要進行條件判斷并根據條件需要執行不同分支語句的時候就需要判斷語句。
3.1 實例
實例中的程序都是可以運行。大家可以實際動手來試試。
這里我們準備一個猜數字的小游戲,以幫助大家來理解條件語句。只有當數字等于 2 的時候,屏幕上才會顯示”你猜對了“的字樣。
#include <stdio.h>
int main()
{
int a;
puts("請你猜數字,請輸入0-9的數字"); scanf("%i",&a);
if (a==2)
{
puts("你猜對了");
}
return 0;
}
這是在 gcc version 8.3.0 上執行的結果。
#include <stdio.h>
int main()
{
int a;
puts("請你猜數字,請輸入0-9的數字"); scanf("%i",&a);
if (a<3 && a>1)
{
puts("你猜對了");
}
return 0;
}
這是運行結果,與上面實現了同樣的功能,只不過這里用了布爾運算。當兩個條件同時都成立的時候才 可以運行條件語句中的內容。
#include <stdio.h>
int main()
{
int a;
puts("請你猜數字,請輸入0-9的數字"); scanf("%i",&a);
if (a<3 || a>1)
{
puts("你猜對了");
}
return 0;
}
這個時候,無論輸入什么數字,都會顯示結果正確。因為這時的判斷條件是 a 小于 3 或者 a 大于 1 的時候,條件都是成立的。這個時候如果我們的預期還是只輸出 2 ,那么這個條件判斷就是錯的。
3.2 提示
在使用條件判斷中,一定要注意使用條件判斷符號,也就是 == ,而不是賦值符號 = , 為了防止出現這個錯誤,也可以將數值與變量位置互換反過來寫。寫成 5==a
4. 小結
作為程序組成的基本構建之一的條件語句,是可以通過條件的設立與判斷來改變程序的走向。這就如同 在一個十字路口,你可以根據自己的既定目標選擇通過十字路口的方向,以此來最終到達自己的目的地。
雖然條件語句構成簡單,但是要注意的是這里會經常引發隱蔽的錯誤。比如將條件判斷寫成了賦值。布 爾判斷的循序與我們預想的不一樣等等。