我正在制作一个基于文本的游戏,在我键入“为什么”而不打印“测试”这一行之前,我的代码可以正常工作。
System.out.println( "Fallout: Master's dialogue");
System.out.println(" ");
System.out.println( " So, what shall it be? Do you join the Unity or do you die here? Join! Die! Join! Die! ");
System.out.print( "> ");
Go = keyboard.nextLine();
if (Go.equalsIgnoreCase("join"))
{
System.out.println("Excellent. Your talents will be useful. But first you must tell me everything about your vault.");}
System.out.print("> ");
Look = keyboard.nextLine();
if (Go.equalsIgnoreCase("why"))
{System.out.println("TEST");}
System.out.print("> ");
Look = keyboard.nextLine();
}
答案 0 :(得分:1)
我假设Go
和Look
是字符串变量。
在代码开头,您读取了用户输入并将其存储在Go
中:
Go = keyboard.nextLine();
然后您检查Go
是否为join
:
if (Go.equalsIgnoreCase("join"))
这一切都很好,很好。
然后,您第二次读取用户输入,并将其存储在Look
中:
Look = keyboard.nextLine();
但是您错误地检查了Go
:
if (Go.equalsIgnoreCase("why"))
Go
尚未更改。 Go
仍然是“ join”,因此条件永远不会成立。
您应该改为选中Look
:
if (Look.equalsIgnoreCase("why"))