c 語法之switch語句

2021-05-22 09:12:27 字數 1193 閱讀 5330

switch語句在c或c++語言中是非常普通的乙個語句了,而且我們也是經常用到的。而且我們使用的switch語句都是和case、default、break等語句一起使用的。

switch語句的使用可以非常的簡單,也可以非常的複雜,所以你可以看到下面的一些另類的使用。

首先問一下的是:你知道switch文法是怎麼定義的嗎?

學過《編譯原理》的人都知道,我們要寫某個語言的編譯器就得定義這個語言的乙個文法,這樣我們才可以根據定義好的文法來寫編譯器,而c、c++的switch語句的文法的定義很簡單,如下:

switch(expression) statement

看下上面定義的文法,switch語句就是switch關鍵字後面接左括號,之後是表示式,之後是右括號,後面在跟語句塊。

所以這個switch語句是很簡單的,那麼我們可以根據這個文法寫下下面這樣的**:

編譯輸出:i=3

我們看到上面的**在使用switch時是很簡單的使用的:

switch(表示式)

語句我們看到switch表示式中的i沒有匹配,所以輸出的i的值還是3。

由於switch後面是個語句塊,所以我們的表示式就可以寫成這樣:

switch(i)

i=2;

這樣用{}來框取乙個語句塊。

我們想要i=2;這個語句,就加上default:

switch(i)

default:

i=2;

switch語句的文法的定義是簡單的,但statement語句塊的定義就不那麼簡單的了,我們可以非常靈活的使用這個語句塊來非常靈活的使用switch語句。

我們看下switch和case使用的情況:

switch(i)

default:

i=2;

case 1:

printf("a=1/n");

break;

case後面一定是要乙個整數,或是可以轉換成整數的物件。但case卻不一定要在語句塊中的第一層,所以我們可以寫成這樣:

編譯輸出:i = 8;

由於case的實現,其實從彙編角度來說就是跳轉語句,所以可以使用下面那樣風格的**:

編譯輸出:p = 2, pi = 3

雖然,上面的**沒有什麼實際的意義,但是也可以看到另類的switch語句的用法,switch語句的用法關鍵就是後面的語句塊,這個語句塊是可以靈活的運用以達到靈活使用switch語句的目的。

switch語句語法

switch case語句適用於從一組互斥的分支中選擇乙個執行分支。int day 0 switch day switch語句中的控制表示式 day 必須是乙個整型或列舉型別,或者是乙個 class 型別,其中 class 有乙個單一的轉換函式將其轉換為整型或列舉型別。在乙個 switch 中可以有...

switch語句的語法

關於switch語句 1.switch語句也屬於選擇結構,也是分支語句 2.switch語句的語法結構 乙個比較完整的switch語句應該這樣編寫 switch int或string型別的字面值或變數 3.switch語句的執行原理 switch後面小括號當中的 資料 和case後面的 資料 進行一...

C 語句 switch語句

switch 語句選擇乙個要執行的語句列表,此列表具有乙個相關聯的 switch 標籤,它對應於 switch 表示式的值.switch statement switch expression switch block switch block switch block 一組switch secti...