一、Switch語法結構
switch(expression) { case value1: // 當 expression 等於 value1 時執行的語句 break; case value2: // 當 expression 等於 value2 時執行的語句 break; default: // 當 expression 與上面的 value 都不匹配時執行的語句 break; }
Switch語句是編程語言中一種很常見的條件分支語句,其基本結構如上所述。其中expression為要被測試的表達式,value1、value2等則為表達式可能等於的值。如果expression匹配上其中一個值,則會執行相應的代碼塊直到break語句被運行或者switch語句執行完畢。如果expression沒有與任何值匹配,則會執行default中的代碼塊。
二、Switch語句Power BI
在Power BI中,switch語法可以被用於創建計數器和分段函數,例如根據數據的不同範圍來顯示不同的顏色。
Color = SWITCH( TRUE(), Sales >= 1000, "#6EAE37", Sales >= 500, "#F7C746", Sales >= 100, "#F29F4F", "#ED7D31" )
此代碼段會將銷售量按照不同的範圍用不同的顏色繪製出來。這種方法相比於if語句或者嵌套if語句來說,能夠更加清晰、簡潔地表達計數器的意圖。
三、Switch語法用法
Switch語法在編程中主要用於替代if…else語句中過於冗長的判斷代碼。以下是一些常見的Switch語法用法:
1. 替代冗餘的if…else語句
Switch語句可以將複雜的if…else語句精簡成簡潔的代碼塊。以下是一個示例:
int day = 4; switch (day) { case 1: printf("Monday"); break; case 2: printf("Tuesday"); break; case 3: printf("Wednesday"); break; case 4: printf("Thursday"); break; case 5: printf("Friday"); break; case 6: printf("Saturday"); break; case 7: printf("Sunday"); break; }
上述代碼只需要7個case,就可以完成與7個if語句相同的功能,降低了代碼的維護難度。
2. 進行肯定或否定的測試
Switch語句可以測試一個表達式是否等於特定的值,並給出true或false的結果。以下代碼可以幫助理解:
string fruit = "apple"; switch (fruit) { case "apple": case "pear": case "orange": printf("This is a fruit!"); break; default: printf("This is not a fruit!"); break; }
如果fruit等於”apple”、”pear”或者”orange”中的任何一個,代碼輸出的結果就是”This is a fruit!”。否則輸出的結果為”This is not a fruit!”。可以很明顯地看出,該方法相比if語句更加簡單直觀。
3. 基於枚舉的測試
Switch語句可以根據枚舉值來進行測試。以下代碼示例:
enum Lights { Red, Yellow, Green }; Lights light = Green; switch (light) { case Red: printf("The light is red!"); break; case Yellow: printf("The light is yellow!"); break; case Green: printf("The light is green!"); break; }
上述代碼定義了一個枚舉類型Lights,包含三個值:Red、Yellow和Green。當light等於Green時,輸出的結果為”The light is green!”。
四、Switch語法可以用哪些類型
Switch語句可以用於處理大多數數據類型,包括int、char、short、byte和long等。在Java中,switch語句還可以處理String類型。以下為一個示例:
String fruit = "apple"; switch (fruit) { case "apple": printf("This is an apple!"); break; case "pear": printf("This is a pear!"); break; case "banana": printf("This is a banana!"); break; }
如果fruit等於”apple”,則輸出的結果是”This is an apple!”。如果fruit等於其他的值,則switch語句會直接跳過。
五、Switch語句程序
以下是一個基於Switch語法的簡單程序:
#include int main() { int a; printf("Enter a number: "); scanf("%d", &a); switch (a) { case 1: printf("Monday"); break; case 2: printf("Tuesday"); break; case 3: printf("Wednesday"); break; case 4: printf("Thursday"); break; case 5: printf("Friday"); break; case 6: printf("Saturday"); break; case 7: printf("Sunday"); break; default: printf("Invalid input!"); break; } return 0; }
該程序將用戶輸入的數字與1-7進行匹配,輸出該數字代表的星期幾。如果用戶輸入的數字不是1-7的範圍,則輸出”Invalid input!”。
六、Switch語句細節
1. Case中不需要break語句
在Switch語句中,如果Case代碼塊執行完畢沒有出現break語句,則程序會繼續執行下面的代碼塊,直到遇到break或者執行完畢。以下是一個例子:
int day = 4; switch (day) { case 1: printf("Monday"); case 2: printf("Tuesday"); break; case 3: printf("Wednesday"); break; case 4: printf("Thursday"); break; case 5: printf("Friday"); break; case 6: printf("Saturday"); break; case 7: printf("Sunday"); break; }
在上述代碼中,如果day等於1,輸出的結果就是”MondayTuesday”,這是由於沒有break語句,導致程序繼續執行了下一個代碼塊。
2. Default語句位置
Default語句通常被放在Switch語句的末尾,可以確保所有Case代碼塊都被執行完畢後,才會執行default代碼塊。以下是一個示例:
int day = 8; switch (day) { case 1: printf("Monday"); break; case 2: printf("Tuesday"); break; case 3: printf("Wednesday"); break; case 4: printf("Thursday"); break; case 5: printf("Friday"); break; case 6: printf("Saturday"); break; case 7: printf("Sunday"); break; default: printf("Invalid input!"); break; }
在該代碼中,如果day等於8,程序會直接執行default代碼塊,輸出結果為”Invalid input!”。
七、Switch語法錯誤
以下是一些常見的Switch語法錯誤:
1. 沒有default代碼塊
如果Switch語句中沒有設置default代碼塊,當input不匹配任何Case時,程序會直接跳過Switch語句。
2. Case代碼塊沒有break語句
如果Case代碼塊內沒有break語句,則程序會繼續執行下一個代碼塊,直到遇到break語句或執行完畢。
3. Case代碼塊中有重複的值
如果Case代碼塊中出現重複的值,則只有第一個匹配的代碼塊會被執行。
4. switch語法與float,string,long,char也可以一起使用
但是在使用時需要注意轉換,並且不建議和double一起使用。
八、Switch語句規定
以下是一些關於Switch語句的規定:
1. Case中只能使用常量表達式或者字面量
Case代碼塊中只能使用常量表達式或者字面量,不能使用變量或函數的返回值。
2. Switch語句不能比較字符串
在很多編程語言中,Switch語句無法比較字符串類型的數據。不過在Java中,可以使用字符串的equals()方法來進行比較。
九、Switch語句的用法
Switch語句可以用於替代if…else結構中較為複雜的判斷條件,使代碼更加清晰明了。在Power BI中,Switch語法還可以用於創建計數器和分段函數等。可以對參數的不同情況進行分類處理,提高代碼的效率。
結語
本篇文章深入探究了Switch語法的各個方面,包括語法結構、應用細節、常見錯誤和規定等。Switch語句在編程中有着廣泛的應用,能夠有效地提高代碼的可讀性和執行效率。理解和掌握Switch語法對於編程技術人員來說是非常重要的。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/251925.html