switch有乙個坑比較容易踩,在這裡記錄提醒自己。
如下**請問輸出什麼?
如果你覺得答案是:
i:2那就錯了。
要注意,switch語句到case語句之間的**是不會執行的。
直接略過,所以case挨著switch寫好了:)
switch語句通常我們慣性思維case都是從下到大1-n種情況排列下來,
不過不要忘記case是可以倒著從大往小寫的。
如,求某日期是該年的第幾天可以從12月倒著往下寫:
int getdaysinyear1(int
year,int
month,int
day)
return sum_days;
}
這樣寫比順著從小往大寫可以減少很多if判斷。
當然,用陣列對映月份日期更簡潔:
int getdaysinyear2(int
year ,int
month,int
day)
; for ( i = 0; i < month-1; i++)
sum_days += day;
((year%4==0 && year%100!=0)||(year%100==0&&year%400==0))?sum_days++ :sum_days;
return sum_days;
}
go語言乙個switch的坑
今天遇到乙個案例,挺有意思,而且難以置信 func alwaysfalse bool func main 猜一下輸出什麼?對,你猜錯了,真實輸出為true。看到這有一種罵娘的衝動,為啥呀,明明是false的呀。別急,咱們改一下,你要的false就出來了。func alwaysfalse bool f...
MySQL UPDATE 語句乙個「經典」的坑
目錄 有人問,比如下圖 問題歸納起來就是 在mysql裡面update一條記錄,語法都正確的,但記錄並沒有被更新.剛遇到這個問題的時候,我拿到這條語句直接在測試庫裡面執行了一把,發現確實有問題,但和開發描述的還是 有區別 這裡我用測試資料來模擬下 執行之後的記錄是 可以看到,結果並不像這位開發同學說...
Python的乙個坑
今天發現了python乙個坑。我們知道python中函式跟c 一樣,可以設定預設引數,比如 def func x,y 1 print x,y func x 10 10 1 y有乙個預設值1,所以函式呼叫的結果是列印10 1 但是如果預設值是這樣的 class food def init self s...