(后有該用法的總結,不想看我根據測驗推導用法的朋友們可以直接看總結)
(該用法我在書中沒找到,網上看到的介紹寥寥無幾且都為粗糙,將該段作用寫作博客分享給大家)
在課上老師講過switch是作用于整數的陳述句,但是我曾在貼吧里見過用switch選擇“范圍”的用法,而該用法我從未在程式設計基礎一書中找到,故想分享給大家,
如下代碼1:
switch (a){
case 1 ... 3:printf("a在[1,3]內");
break;
default:
printf("a不在[1,3]內");
}
同學們可以試試這段陳述句,試過可以發現當整數型變數a在輸入為[1,3]內時輸出沒有任何問題,我詢問老師的時候老師告訴我case后只能接一個常量,然鵝[1,3]可以說是一個變數,那么這個陳述句的成功輸出是代表著老師的錯誤嗎?
但是當我換個思路想這個問題時做了個推斷,如果這個' ... '的作用不是表范圍而是表示對有限的數進行省略的話一切都說的通了,而且英語中的省略號正是"..."
未省略的代碼如下代碼2:
switch (a){
case 1:
case 2:
case 3:printf("a在[1,3]以內")
default:printf("a不在[1,3]以內")
}
則該省略號不僅使代碼變整潔了,而且在enum中也有妙用,
總結:在switch中一段為了達到省略某一段連續的整數但指令相同情況可以用 case a ... b:statement;break;陳述句進行操作
ps:同學們可以參考該代碼1,2的對比進行理解,并且"..."的意思是省略若干個連續的整數,而絕非范圍的意思,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/193509.html
標籤:其他
