如果包含两个单词

时间:2016-02-05 14:51:46

标签: java if-statement contains

我在编码方面是全新的,无法使我的应用程序正常运行。请帮忙!

我为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如果他们输入green
  • ocean如果他们输入blue
  • sunny如果他们同时输入
  • dull如果他们不输入

问题是如果我写的一个句子只包含green,它仍会返回sunny而不是garden

2 个答案:

答案 0 :(得分:3)

您需要使用bosh作为AND来检查蓝色和绿色。类似下面的逻辑应该工作。订单很关键。在开始检查任何一个单词之前,您必须检查这两个单词。否则,在打印晴天之前,您总是打印出海洋或花园。

&&

答案 1 :(得分:3)

你的问题在这里:

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

第一个if什么都不做,因为后跟一个空语句;。第二个是您在输入sunny时获得green的原因。

我想你想把它们与逻辑和运算符&&结合起来:

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