import java.util.Scanner;
import static java.lang.System.out;
import static java.lang.System.in;
public class AI_Core {
/**
* @param args
*/
public static void main(String[] args) {
String Input;
String HOY_Input;
Scanner Command = new Scanner(in);
Scanner HOY_Response = new Scanner(in);
out.println("Hello Sir, how can I help you?");
while(true){
Input = Command.nextLine();
if((Input.equals("Hello")) || (Input.equals("Hey M"))) {
out.println("Hello Sir, how are you?");
HOY_Input = HOY_Response.nextLine();
if((HOY_Input.equals("Great!")) || (HOY_Input.equals("Alright"))) {
out.println("Glad to hear it sir.");
}
if((HOY_Input.equals("Not so good")) || (HOY_Input.equals("Been better"))) {
out.println("I'm sorry to hear that sir, just let me know if I can help in any way.");
}
}
if(Input.equals("exit")) {
out.println("Goodbye Sir.");
//out.wait();
System.exit(0);
}
else {
out.println("I'm sorry sir, but I don't quite understand the term: ");
out.print(Input);
out.print(", could you please check your spelling and try again?");
}
}
}
}
Else语句在If语句之后执行,如控制台中所示:
您好先生,我该如何帮助您? 嘿M
你好先生,你好吗? 太好了!
很高兴听到先生。
我很抱歉先生,但我不太明白这个词:嘿M,请你检查拼写然后再试一次?
答案 0 :(得分:3)
当您说if(Input.equals("exit"))
时,您已经开始了另一个if
。 <{1}}与“exit”不匹配,因此执行else。
看起来您只想要执行3个案例中的一个。在这种情况下,您需要Input
将其连接到第一个else if
:
if
这样,只有前两个else if(Input.equals("exit")) {
语句都产生I'm sorry sir, but I don't quite understand the term:
时才会打印if
。
答案 1 :(得分:0)
问题是你的else语句只引用了它之前的if语句。第一个if语句就是它自己的全部。只要输入不是“退出”,else部分就会执行。
您需要else if
来连接所有三个语句,以便只执行一个语句:
else if(Input.equals("exit")) {
此页面可能有所帮助:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html