2016-02-05 68 views
2

我是全新的編碼,無法讓我的應用程序正常運行。請幫忙!如果包含兩個詞

我寫了下面的代碼爲HW分配:

import java.util.Scanner; 

public class HW1Q2 
{ 
    public static void main(String[] args) 
    { 
     Scanner keyboard = new Scanner(System.in); 
     String sentence, str1, str2; 

     System.out.println("Enter a sentence containing either the word \"blue\" or the word \"green\" both or neither"); 
     sentence = keyboard.nextLine(); 
     str1 = "blue"; 
     str2 = "green"; 

     if(sentence.contains("blue")); if(sentence.contains("green")){ 
      System.out.println("sunny");} 
     else{ 
     if(sentence.contains("blue")){ 
      System.out.println("ocean");} 
     else{ 
     if(sentence.contains("green")){ 
      System.out.println("garden");} 
     else{ 
      System.out.println("dull"); 
     }}} 
    } 
} 

的目標是回到

  • garden如果他們鍵入​​
  • ocean如果他們鍵入blue
  • sunny如果他們同時輸入和
  • dull如果他們鍵入既不

的問題是,如果我寫的句子,只有包括​​,它仍然會返回sunnygarden

回答

3

您需要使用&&作爲AND來檢查藍色和綠色。像下面的邏輯應該工作。訂單是至關重要的。在開始檢查任何單詞之前,您必須檢查兩個單詞。否則,在打印陽光之前,您總是會打印出海洋或花園。

if(sentence.contains("blue") && sentence.contains("green")) { 
     System.out.println("sunny"); 
    } else if (sequence.contains("blue")) { 
     System.out.println("ocean"); 
    } else if (sequence.contains("green")) {  
     System.out.println("garden"); 
    } else { 
     System.out.println("dull"); 
    } 
3

你的問題是在這裏:

if(sentence.contains("blue")); if(sentence.contains("green")){ 
    System.out.println("sunny");} 

第一if做什麼都沒有,因爲它後面是空語句;。第二個是你輸入​​時得到sunny的原因。

我想你想這些與邏輯和運營商&&結合:

if(sentence.contains("blue") && sentence.contains("green")){ 
    System.out.println("sunny");} 
相關問題