【发布时间】:2019-06-18 07:44:52
【问题描述】:
我正在尝试制作一个小游戏:
您可以选择 2 位英雄:1 位战士和 2 位法师。
接下来,您应该选择旅行方式:1 骑马 2 传送(仅适用于法师)。
最后,选择武器:1剑2法杖(*法师只能使用法杖;战士可以同时使用)。
我为我的第一个问题(选择英雄)创建了一个循环,这样如果用户输入了除 1 或 2 之外的其他内容,程序将重复该问题(“选择你的英雄:...)。我需要我的第二个和第三个问题也是如此(特别是因为有一些限制,例如如果用户选择了战士,他不能选择传送作为他的旅行选项)。
public static void main(String[] args) {
int hero, travel, weapon;
Scanner scan = new Scanner(System.in);
loop:
while (true) {
System.out.println("Choose your hero: 1 for Warrior, 2 for Mage");
hero = scan.nextInt();
switch (hero) {
case 1:
System.out.println("Choose your travel option: 1 for Horse; 2 for Teleportation");
travel = scan.nextInt();
break loop;
case 2:
System.out.println("Choose your travel option: 1 for Horse; 2 for Teleportation");
travel = scan.nextInt();
break loop;
default:
break;
}
}
}
我不知道如何在另一个循环中正确使用一个循环。我尝试了几个选项,但总是返回错误。
【问题讨论】:
-
为什么你希望你的新循环在这个循环中?据我了解你的问题,你可以把它放在这个之后。
-
你必须使用循环吗?使用多个没有任何循环的简单方法可能是一个更好的解决方案。
-
附注:不要不要在标签上使用中断!任何种类的标签都是邪恶的。在几年的编程中,我已经忘记了它们甚至存在,我希望不会很快看到它们。为什么?如果你必须使用它们,那么你的方法可能太复杂了,你应该想出一些其他的方法来组织你的代码。
-
作为风格指南建议 - 尽量不要提供不可用的建议。没有什么比你提出的场景更令人气愤的了……这样想吧。你想要哪个英雄? A) 战士。然后:什么交通工具? A) 传送器。然后程序有效地说“哈哈,你不能那样做 - 运气不好,再去猜测正确的组合!”。但这只是我的建议——毕竟这是你的游戏。另外作为提示,您可能在一段时间内不需要一段时间。有一些 ifs 的一段时间可能对你有用。
标签: java loops while-loop switch-statement java.util.scanner