【发布时间】:2017-05-24 23:14:40
【问题描述】:
我想以我今年年初才开始学习 Java 作为开头,因此感谢您的所有帮助!我目前正在开发一个 Shadowrun(第 3 版)程序,该程序将 Decking 变成命令提示符。我希望用户能够以主机颜色开始输入蓝色、绿色、橙色或红色,但也可以提供随机选项。
Scanner user_input = new Scanner(System.in);
String HostColor;
System.out.println("What is the color of the Host? (Blue, Green, Orange, Red, Random)"); //Get the Host's Color
HostColor = user_input.nextLine();
Random rand = new Random();
while ((!HostColor.equals("Blue")) || (!HostColor.equals("Green")) || (!HostColor.equals("Orange")) || (!HostColor.equals("Red"))) {
if (HostColor.equals("Blue")) {
...
break;
}
else if (HostColor.equals("Green")) {
...
break;
}
else if (HostColor.equals("Orange")) {
...
break;
}
else if (HostColor.equals("Red")) {
...
break;
}
else if (HostColor.equals("Random")) {
int RandomHost = (rand.nextInt(4));
if (RandomHost == 0) {
HostColor.equals("Blue");
...
break;
}
else if (RandomHost == 1) {
HostColor.equals("Green");
...
break;
}
else if (RandomHost == 2) {
HostColor.equals("Orange");
...
break;
}
else if (RandomHost == 3) {
HostColor.equals("Red");
...
break;
}
}
else {
System.out.println("Invalid Command");
System.out.println("What is the color of the Host? (Blue, Green, Orange, Red, Random)");
HostColor = user_input.nextLine();
}
}
System.out.println("Host is a " + HostColor + "...");
代码在指定特定颜色时可以正常工作。但是,在选择随机选项然后打印整个结果时,而不是打印四种颜色中的一个,我的代码表示hostcolor是随机的。感谢任何有助于解决此问题的意见 - 在此先感谢!
【问题讨论】:
-
这些
break;s 看起来很有线。 -
if (RandomHost == 0) { HostColor.equals("Blue");第二部分是比较,不是分配。 -
HostColor.equals(" ")不会随机设置HostColor的值,这是一个比较,因此请正确分配。 -
啊,好吧!所以我需要重新分配它而不是使用.equals!编辑:可悲的是,如果我不使用中断,至少在 IF 部分,代码循环/结束:(
标签: java assignment-operator comparison-operators