我是编码新手,无法让我的应用程序正常运行。请帮忙!
我为硬件作业编写了以下代码:
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
。
最佳答案
您需要使用 &&
作为 AND 来检查蓝色和绿色。类似于下面的逻辑应该可以工作。顺序很关键。在开始检查任一单词之前,您必须检查这两个单词。否则,您总是先打印出 ocean 或 garden,然后才能打印 sunny。
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");
}
关于java - 如果包含两个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35227003/