2017-02-24 124 views
0

如果我輸入1,那麼我的程序使用firstMethod,如果我輸入2它使用secondMethod 問題是如果我輸入3,4或任何其他數字它不只是簡單地打印輸入輸出錯誤,我怎麼能設置範圍或類似的東西,所以除1或2以外的任何東西打印輸入輸出錯誤?Java(日食)掃描器

Scanner sc = new Scanner((System.in)); 
    if (sc.hasNextInt()) 
     m = sc.nextInt(); 
    else { 
     System.out.println("input-output error"); 
     sc.close(); 
     return;   
    } 

switch(m){ case 1: firstMethod(a); break; case 2: secondMethod(a); break; }

default: 
    System.out.println("input-output error"); 
    break; 
+0

使用'default'的情況。 – luk2302

+0

'default:System.out.println(「input-output error」);' –

+0

您需要通過https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch設置默認情況.. html閱讀官方的java文檔並同時嘗試 – Akshay

回答

0

交換機有一個 「默認」 的情況:

switch(m){ 
    case 1: 
     firstMethod(a); 
     break; 
    case 2: 
     secondMethod(a); 
     break; 
    default: 
     System.out.println("input-output error"); 
     break; 
    } 
+0

ussing默認:System.out.println(「input-output error」); 休息;不工作仍然是一樣的。 –

-2
Scanner sc = new Scanner((System.in)); 
    while (sc.hasNextInt()) { 
    m = sc.nextInt(); 

    switch(m) { 
    case 1: 
     firstMethod(a); 
     break; 
    case 2: 
     secondMethod(b); 
     break; 
    default: 
     System.out.println("input-output error"); 
    } 
    } 
    sc.close(); 

有了這個實施,如果m是一個整數等於比12其他任何(-1,0,400,950等),它會去除這會打印出「輸入輸出錯誤」的情況。

注:每個case訪問基於斷什麼m等於,因此基於代碼的每一case關你期望m是什麼。

+0

不解決op的問題..也打破;在默認情況下不使用 – Akshay

+0

這正好解決了op的問題,考慮到最好的答案和我的是相同的,除了休息。 – Sergnio

+0

另外..從C編程語言 - 第二版(K&R 2,作爲一個很好的形式,在最後一種情況後(在這裏默認)休息一下,即使它在邏輯上是不必要的 – Sergnio

0

您應該在switch語句中使用default

switch(m){ 
    case 1: 
     firstMethod(a); 
     break; 
    case 2: 
     secondMethod(a); 
     break; 
    default: 
     System.out.println("input-output error"); 
     break; 
    } 

default的想法是,如果案件沒有定義,將在default運行命令。