我單獨注釋掉第一部分或者單獨注釋掉第二部分,結果都可以運行,但是我都不注釋的時候,就不顯示結果了,為什么?
public class HelloWorld {
? ? public static void main(String[] args) {
char today='日';
? ? ? ? switch(today){
? ? ? ? ? ? // case '一':
? ? ? ? ? ? // case '二':
? ? ? ? ? ? // case '三':
? ? ? ? ? ? // ? ? System.out.println("吃包子");
? ? ? ? ? ? case '二':
? ? ? ? ? ? case '四':
? ? ? ? ? ? case '六':
? ? ? ? ? ? ? ? System.out.println("吃油條");
? ? ? ? ? ? case '日':
? ? ? ? ? ? ? ? System.out.println("吃主席套餐");
? ? ? ? }
/************************************************************************************************/
public class HelloWorld {
? ? public static void main(String[] args) {
char today='日';
? ? ? ? switch(today){
? ? ? ? ? ? case '一':
? ? ? ? ? ? case '二':
? ? ? ? ? ? case '三':
? ? ? ? ? ? ? ? System.out.println("吃包子");
? ? ? ? ? ? // case '二':
? ? ? ? ? ? // case '四':
? ? ? ? ? ? // case '六':
? ? ? ? ? ? // ? ? System.out.println("吃油條");
? ? ? ? ? ? case '日':
? ? ? ? ? ? ? ? System.out.println("吃主席套餐");
? ? ? ? }
? ? ? ??
/**********************************************************************************************/
public class HelloWorld {
? ? public static void main(String[] args) {
char today='日';
? ? ? ? switch(today){
? ? ? ? ? ? case '一':
? ? ? ? ? ? case '二':
? ? ? ? ? ? case '三':
? ? ? ? ? ? ? ? System.out.println("吃包子");
? ? ? ? ? ? case '二':
? ? ? ? ? ? case '四':
? ? ? ? ? ? case '六':
? ? ? ? ? ? ? ? System.out.println("吃油條");
? ? ? ? ? ? case '日':
? ? ? ? ? ? ? ? System.out.println("吃主席套餐");
? ? ? ? }
? ? ? ??
2016-04-24
你這個代碼問題應該是有不少的:
一個漢字不是一個字符,所以你用char today='日'應該好似有問題的。為什么不考慮用數字呢?int today='0'(西方國家一周的第一天是周日所以我用0表示第一天,這和計算機里的思維一致,比如數組的小表都是從0開始的)或者你也可以int today='7' 這都無所謂;
switch()語句語法有問題。建議你用switch()語句之前先思考一下如果單純嵌套if()語句,即 iif() elseif() .....else()該如何實現。因為switch()語句本身就是一個條件嵌套語句。這么一比較你就知道了,在每一行case: 語句1后面都應該加上break;不然這個case() 語句之行完了后仍然要繼續執行下面所有的case()語句進行條件匹配(聯想一下if()elseif()..else()語句是不是不會這樣?)所以代碼應該是:
int today=0;
switch(today)
{case(1):
case(3);
case(5):System.out.println("今天吃包子");break;
/*多行條件匹配要將多個case語句都羅列出來并且在做后一行寫上條件滿足執行的語句,最后,break 語句是不能少。*/
case(2):
case(4):
case(6):System.out.println("今天吃油條");break;
case(0):System.out.println("今天吃主席套餐");break;/*最后一行case語句可以不寫break,因為條件匹配到最后一行,無路能否匹配程序都得跳出循環匹配了)*/
/* 從上面一句說的邏輯里,你也看得出來有不合理的地方——如果所有條件(case())都沒有匹配成功程序該怎么辦呢?你沒有告訴程序,所以這是不合理的。但是if()..elseif()..else()語句沒有這個問題你想明白了嗎?所以正確的switch()語句的語法是將最后一個匹配條件改成default: ?... ?.
這個例子的話就應該寫成default():System.out.println("今天吃主席套餐");*/
最后一個小建議:計算機(編程語言)說到底是舶來品,外國人發明的。在計算機世界里,除了字符串,建議不要使用漢字,你用漢語拼音都比漢字要好——很容易出現編碼問題。關于漢字編碼和英文字母的編碼問題,你也應該了解一下,這是不一樣的——漢字那么復雜,哪像a,b,c,d這么簡單用一個字節就能編碼出來呢?。
2016-04-23
2016-04-23
因為"吃包子"應該是 一三五,你寫成 一二三 了,這樣會跟下面的二重復。另外,建議你每個case輸出之后加break;
2016-04-23
? ? ? ? ? ? case '一':
? ? ? ? ? ? case '三':
? ? ? ? ? ? case '五':
? ? ? ? ? ? ? ? System.out.println("吃包子");