我在编码方面是全新的,无法使我的应用程序正常运行。请帮忙!
我为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
。
答案 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");}