2016-12-25 235 views
-3

我可以在switch case語句中使用用戶輸入語句嗎?我可以在switch case語句中使用用戶輸入語句嗎?

這是我的代碼。

switch(choice) { 
    System.out.println("Enter First Number"); 
    num1=input.nextInt(); 
    System.out.println("Enter Second Number"); 
    num2=input.nextInt(); 
    case 1: 
     total=num1+num2; 
     System.out.println("Addition of "+num1+" and "+num2+" are "+total); 
     break; 
    case 2: 
     total=num1-num2; 
     System.out.println("Substraction of "+num1+" and "+num2+" are "+total); 
     break; 
    case 3: 
     total=num1*num2; 
     System.out.println("Multiplication of "+num1+" and "+num2+" are "+total); 
     break; 
    case 4: 
     total=num1/num2; 
     System.out.println("Divistion of "+num1+" and "+num2+" are "+total); 
     break; 
    default: 
     System.out.println("Please Choose right option...Try again"); 
     break; 

} 

這在Java中可能嗎?

+4

你爲什麼要這麼做?爲什麼不簡單地在switch語句之前獲取輸入,然後在輸入無效的情況下在do-while循環內再次獲取輸入? –

+0

這是不可能的在switch case語句中? – Mathur

+1

如果編譯器說你不能做某件事,那麼答案就是你無法做到。 – dasblinkenlight

回答

0

爲任何情況下,被分配到用戶輸入的語句代碼將無法工作...
這個東西可以通過甲骨文
給出的定義switch語句的主體被稱爲開關塊被理解。 交換機模塊中的語句可以標註一個或多個大小寫或默認標籤。 switch語句評估其表達式,然後執行匹配大小寫標籤後面的所有語句。
爲你的情況「用戶輸入語句」未分配給任何情況下,因此編譯器會引發錯誤
但你可以採取用戶輸入,如果你把用戶輸入的語句在任何情況下開關塊內部
例如:

case 1: 
System.out.println("Enter First Number"); 
    num1=input.nextInt(); 
    System.out.println("Enter Second Number"); 
    num2=input.nextInt(); 
total=num1+num2; 
     System.out.println("Addition of "+num1+" and "+num2+" are "+total); 
     break; 


這工作,因爲現在用戶輸入語句被分配到「案例1」中的開關塊...

希望說明幫助的你......

+0

謝謝@anubhav,也謝謝你的描述 – Mathur

+0

歡迎你sirif你滿意答案然後你可以通過點擊勾選按鈕來接受它 –