2016-02-05 86 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");} 
相关问题