ava 14是Java編程語言的最新版本之一,引入了許多令人興奮的新功能和改進。其中一個備受關注的功能是對Switch Case語句的增強,使其在編寫代碼時更加優雅和靈活。本文將介紹Java 14中這一改進后的Switch Case語句,并探討其在代碼中的應用。
int dayOfWeek=3;
String dayType=switch (dayOfWeek) {
case 1, 2, 3, 4, 5 -> "Weekday";
case 6, 7 -> "Weekend";
default -> "Invalid day";
};
System.out.println(dayType);
在這個例子中,我們使用箭頭操作符將多個常量值組合在一起,從而在一個Case子句中處理多個情況。這樣的語法簡潔明了,使得代碼更易讀和維護。
int dayOfWeek=3;
String dayType=switch (dayOfWeek) {
case 1, 2, 3, 4, 5 -> {
yield "Weekday";
}
case 6, 7 -> {
yield "Weekend";
}
default -> {
yield "Invalid day";
}
};
System.out.println(dayType);
在這個例子中,我們使用Yield語句返回了每個Case子句的結果,并終止了Switch Case塊的執行。這使得我們可以在不使用Break語句的情況下,更清晰地返回結果并控制代碼流程。
int dayOfWeek=3;
String dayType=switch (dayOfWeek) {
case 1, 2, 3, 4, 5 -> {
System.out.println("Weekday");
yield "Weekday";
}
case 6, 7 -> {
System.out.println("Weekend");
yield "Weekend";
}
default -> {
System.out.println("Invalid day");
yield "Invalid day";
}
};
System.out.println(dayType);
在這個例子中,我們在每個Case子句中添加了一個打印語句,以便在執行時輸出相應的消息。由于每個Case子句中都使用了“Case L ->”語法,即使我們忘記了添加Break語句,代碼也只會執行當前的Case子句,而不會繼續執行下一個Case子句。
結論:Java 14中改進的Switch Case語句使得我們能夠以更優雅和靈活的方式編寫代碼。新的語法簡潔明了,Yield語句提供了更好的控制流程的能力,而“Case L ->”關鍵字則增加了代碼的安全性。這些改進使得Switch Case語句在處理多個條件分支時更加易讀、簡潔和可維護。建議在使用Java 14及更高版本時,充分利用這些改進,以提升代碼的質量和效率。
摘自:科學隨想錄
層嵌套的 if-else 語句在語法上是正確的,但邏輯上卻沒有正確地表達程序員的意圖,例如,意料之外的 else-if 更可能不會注意到而被溜過去;C語言還提供了另一種用于多分支選擇的switch語句,作為一種在一組互斥的項目中做選擇的替代方法,根據變量的不同取值來執行不同的代碼塊。其一般形式為:
switch(表達式){
case 表達式1: 語句1;
case 表達式2: 語句2;
…
case 表達式n: 語句n;
default: 語句n+1;
}
計算表達式的值,然后逐個與case后的表達式值進行比較,當case后的表達式的值與switch表達式的值相等時, 即執行對應case后的語句,然后不再進行判斷,繼續執行后面所有case后的語句。如表達式的值與所有case后的常量表達式均不相同時,則執行default后的語句。
int main(void){
int a;
scanf("%d",&a);
switch (a){
case 1:printf("Monday\n");
case 2:printf("Tuesday\n");
case 3:printf("Wednesday\n");
case 4:printf("Thursday\n");
default:printf("error\n");
}
return 0;
}
如果我們輸入1,case 1:后面的語句開始執行,但是程序并沒有再執行這條語句后停止,而是繼續執行下面的case語句,包括default,直到程序結束。這是因為我們必須顯式地告訴編譯器停止執行switch中的語句,這可以通過在switch語句內的每個執行單元后指定一個break語句來完成 在大多數條件下一個 case標簽的最后一條語句是break。當遇到 break 語句switch語句被終止。正確的代碼如下:
int main(void){
int a;
scanf("%d",&a);
switch (a){
case 1:printf("Monday\n"); break;
case 2:printf("Tuesday\n"); break;
case 3:printf("Wednesday\n"); break;
case 4:printf("Thursday\n"); break;
default:printf("error\n");
}
return 0;
}
那么程序員什么時候希望省略 break 語句?如果多個 case 語句都執行相同的功能代碼時,允許程序執行多個 case 標簽!例如輸入學生成績,大于90分為優,大于70分為一般,大于60分為良,小于60分為差,可用以下代碼實現:
int main(void){
int score;
scanf("%d",&score);
switch (score/10){
case 10:
case 9: printf("優\n"); break;
case 8:
case 7: printf("一般\n"); break;
case 6:printf("良\n"); break;
default:printf("差\n");
}
return 0;
}
把case標簽一個接一個堆起來,以強調這種情形代表的是一個要被匹配的范圍,例如case10和case9為一組,超市score/10等于10或者9,即90分以上的條件。
總結:
以上是老韓關于Linux c基礎的總結歡迎一起討論,如有不足歡迎指點;對Linux c或者Linux驅動感興趣的朋友可以收藏關注,我會持續更新的,謝謝支持!
witch case 語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。
語法格式如下:
switch(expression){ case value : //語句 break; //可選 case value : //語句 break; //可選 //你可以有任意數量的case語句 default : //可選 //語句 }
switch case 語句有如下規則:
*請認真填寫需求信息,我們會在24小時內與您取得聯系。