文字冒险问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文字冒险问题相关的知识,希望对你有一定的参考价值。
我正在做一个简单的文字冒险项目。但是,当我运行代码时,当我尝试两次输入向右/向左/向前/向后时,它将不起作用。它只是停止。另外,当我向前执行然后向左执行时,程序将进入我的故障保护模式。不仅如此,故障保护也不起作用。我输入左键,故障保护继续。我该如何解决这些问题?
if(direction.equals("right") || direction.equals("Right"))
{
x++;
System.out.println("You walk to the right.");
direction = key.next();
}
if (direction.equals("left") || direction.equals("Left"))
{
x--;
System.out.println("You walk to the left.");
direction = key.next();
}
if (direction.equals("forward") || direction.equals("Forward"))
{
y++;
System.out.println("You walk Forward.");
direction = key.next();
}
if (direction.equals("backwards") || direction.equals("Backwards"))
{
y--;
System.out.println("You walk backwards.");
direction = key.next();
}
do{
System.out.print("Sorry, you can't do that. Try again:");
direction = key.next();
}while(!direction.equals("right") || !direction.equals("Right") || !direction.equals("left") || !direction.equals("Left") || !direction.equals("forward") || !direction.equals("Forward") || !direction.equals("backwards") || !direction.equals("Backwards") || !direction.equals("c"));
答案
您的do
块总是被执行,因为缺少else
语句。您可能想做
if { ... }
else if { ... }
else if { ... }
else if { ... }
else {
do { ... }
}
在您的情况下,else if
在您的情况下并不是完全强制性的,但是它更安全,并且可以节省无用的比较。
最后一个else
是真正丢失的那个。
以上是关于文字冒险问题的主要内容,如果未能解决你的问题,请参考以下文章