如圖都沒有給String賦值,爲什麼第一個可以不給String賦值,而另一個沒有賦值就報錯?到底什麼時候適合給String賦值?
報錯不是因爲String xx沒有賦值!而是你switch語句有些問題!
語法上是沒有問題的,但這裏有一個邏輯問題。
一開始你的String xx沒有賦值,最後你System.out.println(xx),那麼這之間你必須給xx賦值,否則會報錯,對吧。
那麼看一下你中間部分的switch語句。如果這裏的today不是"一",是"八",因爲你沒有給today任何限制,雖然你設計時想的是一個星期只有七天。那麼,並沒有這種case,你寫的 xx=? 一條都沒有執行就會跳出switch語句。
那就導致xx沒有賦值,System.out.println(xx)就會報錯。
也就是說,java認爲存在xx沒有賦值的情況,邏輯上有錯誤,就會報錯。
解決的辦法是:
在最後一個break後面加上:default:xx="輸入日期不合理";
讓所有的情況,xx都會得到賦值。
這樣就可以了。