C語言圖文并茂講解分支語句用法
一、if 語句分析
- if 語句用于根據(jù)條件選擇執(zhí)行語句
- else 不能獨立存在且總是與它最近的 if 相匹配
- else 語句后可以接連其他 if 語句


if 語句中零值比較的注意點
- bool 型變量應該直接出現(xiàn)于條件中,不要進行比較
- 變量和 0 值比較時,0 值應該出現(xiàn)在比較符號左邊(這條規(guī)則可以拓展為任意字面量與變量比較時,字面量應該放在左邊,變量放在右邊,這樣即使手誤寫成了 = ,編譯器也能發(fā)現(xiàn))
- float 型變量不能直接進行 0 值比較,需要定義精度



二、switch 語句分析
- switch 語句對應單個條件多個分值的情形
- case 語句分支必須要有 break ,否則會導致分支重疊
- default 語句有必要加上,以處理特殊情況


case 語句中的值只能是整型或字符型
case 語句的排列順序
- 按字母或數(shù)字順序排列各條語句
- 正常情況放在前面,異常情況放在后面
- default 語句只用于處理真正的默認情況
下面看一段 if 和 switch 使用示例:
#include <stdio.h>
void f1(int i)
{
if( i < 6 )
{
printf("Failed!\n");
}
else if( (6 <= i) && (i <= 8) )
{
printf("Good!\n");
}
else
{
printf("Perfect!\n");
}
}
void f2(char i)
{
switch(i)
{
case 'c':
printf("Compile\n");
break;
case 'd':
printf("Debug\n");
break;
case 'o':
printf("Object\n");
break;
case 'r':
printf("Run\n");
break;
default:
printf("Unknown\n");
break;
}
}
int main()
{
f1(5);
f1(9);
f1(7);
f2('o');
f2('d');
f2('e');
return 0;
}下面為輸出結果:

下面反過來,調(diào)換 if 和 switch,實現(xiàn)相同功能:
#include <stdio.h>
void f1(int i)
{
switch( i < 6 )
{
case 1:
printf("Failed!\n");
break;
default:
switch( (6 <= i) && (i <= 8) )
{
case 1:
printf("Good!\n");
break;
default:
printf("Perfect!\n");
break;
}
break;
}
}
void f2(char i)
{
if( 'c' == i )
{
printf("Compile\n");
}
else if( 'd' == i )
{
printf("Debug\n");
}
else if( 'o' == i )
{
printf("Object\n");
}
else if( 'r' == i )
{
printf("Run\n");
}
else
{
printf("Unknown\n");
}
}
int main()
{
f1(5);
f1(9);
f1(7);
f2('o');
f2('d');
f2('e');
return 0;
}下面為輸出結果,和上面一模一樣:

三、小結
- if 語句適用于復雜邏輯進行判斷的情形中
- switch 語句適用于對離散值進行判斷的情形中
- if 語句和 switch 語句在功能上可以相互替換
- if 語句對于"按片"分支判斷的情形更加簡潔
- switch 語句對于多分支判斷的情形更加簡潔
到此這篇關于C語言圖文并茂講解分支語句用法的文章就介紹到這了,更多相關C語言 分支語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
VisualStudio?禁用移動文件到文件夾自動修改命名空間功能
這篇文章主要介紹了VisualStudio?禁用移動文件到文件夾自動修改命名空間功能,文章底部給大家介紹了解決安裝VS2022時,出現(xiàn)未能安裝包“Microsoft.VisualCpp.Redist.14,version=14.32.31332,chip”=x86,的問題及解決方法,需要的朋友可以參考下2022-09-09
詳解VisualS tudio Code開發(fā)Arm嵌入式Linux應用
本文介紹如何在 Visual Studio Code 中使用 Yocto Project 生成的 Linux SDK,并針對 Arm 處理器進行 C/C++ 應用交叉編譯和調(diào)試,感興趣的朋友跟隨小編一起看看吧2021-04-04
Linux搭建C++開發(fā)調(diào)試環(huán)境的方法步驟
這篇文章主要介紹了Linux搭建C++開發(fā)調(diào)試環(huán)境的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-10-10
C++報錯 XX does not name a type;
這篇文章主要給大家介紹了C++報錯 XX does not name a type;field `XX’ has incomplete type解決方案,文中通過代碼示例講解的非常詳細,需要的朋友可以參考下2023-08-08
你只用do-while來實現(xiàn)循環(huán)?太浪費了
這篇文章主要介紹了你只用do-while來實現(xiàn)循環(huán)?太浪費了,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12

