2016-11-16 90 views
-5

所以即时尝试制作一个为学校提出两个问题的程序。我所拥有的问题是,当我只想要一个时,java会一直打印多条消息。是any一个能够告诉我如何做到这一点的权利?下面是代码:如何让java只用if语句打印一条消息

if (answer1.equals("inside") || 
    answer1.equals("outside") || 
    answer1.equals("both")) 
    System.out.println("Question 2) Is it a living thing?(yes/no)"); 
    answer2 = keyboard.next(); 

    if (answer2.equals("yes")) 
    System.out.println("Then what else could you be thinking of besides a houseplant?!"); 

    if (answer2.equals("no")) 
    System.out.println("Then what else could you be thinking of besides a shower curtain?!"); 

    if (answer2.equals("yes")) 
    System.out.println("Then what else could you be thinking of besides a bison?!"); 

    if (answer2.equals("no")) 
    System.out.println("Then what else could you be thinking of besides a billboard?!"); 

    if (answer2.equals("yes")) 
    System.out.println("Then what else could you be thinking of besides a dog?!"); 

    if (answer2.equals("no")) 
    System.out.println("Then what else could you be thinking of besides a cell phone?!"); 
    } 

}

+0

我不知道我的理解,你总是检查_same_条件。你想在这里做什么? – Tunaki

+0

我试图做的是让每个语句打印一个不同的答案,我真的不知道如何做到这一点,而不使用其他,否则如果或嵌套if语句(这是作业的一部分) – jackmasterlooter

+1

'answer2'总是与' “yes”或“no”,所以如果以前是真的,它将保持为真,因为变量没有改变值。打印不同答案的条件是什么? – Tunaki

回答

0

您可以使用switch语句来完成这项不使用if/else语句。但是,您不能像在问题中一样检查多个if语句中的“是”和“否”,而不打印多条消息。

创建参数设置为answer2.toUpperCase()的开关,以便每个答案都能正常工作而忽略大小写。

如果情况等于参数,交换机将执行一个案例中的所有内容。要结束每个案例,请添加“break”。最后。

switch(answer2.toUpperCase()) { 

case "YES": 

System.out.println("What else could you be thinking of besides a houseplant?!"); 

break; 

case "NO": 

System.out.println("Then what else could you be thinking of besides a shower curtain?!"); 

break; 

//And add the rest here 

} 
+0

我的一个建议是,如果您试图随机化打印哪些消息(如果answer2为yes),则可能需要使用Math.random()来随机选择响应。 –

0

仅使用if语句来检查某些内容。

逻辑(注意:不是确切的代码,只有逻辑):

//may use a while loop asking the question until a desired answer 
System.out.println("(Question 1) Is it a living thing?(yes/no)"); 
String answerOne = //get user input; 
System.out.println("(Question 2) Is it a dead thing?(yes/no)"); 
String answerTwo = //get user input; 

if (answerOne.equals("yes") && answerTwo.equals("no")) { 
    System.out.println("it is a living thing!"); 
} 
if (answerOne.equals("no") && answerTwo.equals("yes")) { 
    System.out.println("its DEAD!"); 
} 
+0

根据他在该问题下的评论,部分任务是不使用if else/else或嵌套if语句。 – KyleKW

+0

我想我应该在问题本身中提到这一点,但部分任务是仅在复合条件下使用if语句 – jackmasterlooter

+0

如果我明白你希望做的正确,你是否尝试过使用'if(answer2。等于(“xx”)&& answer1.equals(“yy”))'? – KyleKW