2014-12-08 46 views
0
 System.out.println ("Did you see that?"); 
     String response = input2.nextLine(); 
     System.out.println ("You said "+ response);  

     String[] responses = {"no", "NO", "No", "I did not"}; 

     List<String> response1 = Arrays.asList (responses); 

     for (String response : response1 ){ 
      System.out.println ("That was weird"); 
     } 

我是新來的Java,並想知道我怎麼會在某種程度上使用「爲」聲明說,當你輸入的詞語,如「不」的列表中的一個, 「否」或「否」,會有一些涵蓋這些輸入的迴應。我只是想減少if和else語句的數量。Java進行陳述和掃描儀輸入

回答

1

代碼中的問題是,您對用戶輸入和循環變量都使用相同的變量 - response。更改循環變量:

for (String noResponse : responses ){ 
     if (response.equals(noResponse)) { // you can also use .contains if you 
              // don't require an exact match 
      System.out.println("You said no"); 
      break; 
     } 
    } 

BTW,沒有必要到responses數組轉換成List。循環可以遍歷數組。

0

你可以用列表的方法來檢查它是否包含了response.Like這樣的:

System.out.println ("Did you see that?"); 
    Scanner input2=new Scanner(System.in); 
    String response = input2.nextLine(); 
    System.out.println ("You said "+ response);  

    String[] responses = {"no", "NO", "No", "I did not"}; 

    List<String> response1 = Arrays.asList (responses); 

    if(response1.contains(response)){ 
     System.out.println ("That was weird"); 
    } 
0

作爲一個額外的音符,而不是使可能的響應數組,你可能想要做類似的東西這樣的:

if(response.equalsIgnoreCase("no") || response.equalsIgnoreCase("I did not")){ 
    System.out.println("that was weird"); 
} 

這將檢查「否」或「我沒有」,而是忽略的情況下,所以你不必擔心。