作业:剪刀石头布游戏。
我创建了一个枚举:
enum Gesture{ROCK,PAPER,SCISSORS};
从中我想比较各种价值观来决定谁是计算机还是人。设置值就可以了,并且比较也可以正常工作(纸张覆盖岩石,岩石压碎剪刀,剪刀切碎纸张)。但是,我不能束手无策。只要有平局,该用户即被宣布为获胜者。
唉唉......废话......这将澄清:userPick
是一个String
具有价值rock
,paper
或scissors
。我无法用==
比较userPick
来computerPick
,正如你可以看到下面,是铸造类型Gesture
从我的enum
。
if(computer == 1)
computerPick = Gesture.ROCK;
else
if(computer == 2)
computerPick = Gesture.PAPER;
else
computerPick = Gesture.SCISSORS;
if(userPick.equals(computerPick))
{
msg = "tie";
++tieGames;
}
etc....
我猜这是一个rock
不等于ROCK
或String userPick
无法匹配的问题,Gesture computerPick
因为后者不是String
。但是,我无法在教科书或Oracle的Java教程中找到类似情况的示例,因此我不确定如何解决此问题。
有什么提示吗?
我从你的问题是收集userPick
是一个String
值。您可以这样比较:
if (userPick.equalsIgnoreCase(computerPick.name())) . . .
顺便说一句,如果你是保证computer
始终是一个值1
,2
或3
(和没有别的),你可以将其转换为Gesture
与枚举:
Gesture computerPick = Gesture.values()[computer - 1];
问题内容: 我正在用Java制作轮盘赌(我自己的版本),而玩家可以打赌的类型之一就是选择将要滚动的颜色。(偶数是黑色,奇数是红色)。有没有一种方法可以使用switch语句将字符串与枚举进行比较? 这就是我想要得到的,但这并不是让我在switch语句中使用枚举“颜色”。 问题答案: 您必须具有要在其上进行切换的枚举类型的实例(其 成员 )。您正在尝试打开Enum类本身,这是没有意义的构造。所以你可能
我有一个枚举< code>Foo 下面我正在尝试检查我的枚举中是否包含字符串。 当我发送或for 时,这是有效的。当我发送<code>第一个</code>或<code>第二个</code>给<code>fooStr</code>时,如何使它工作?
问题内容: 我有一个美国所有州的枚举列表,如下所示: 在测试文件中,我将从包含状态的文本文件中读取输入。由于它们是字符串,因此如何将其与枚举列表的值进行比较,以便将值分配给我设置为的变量: 我了解我需要浏览枚举列表。但是,由于值不是字符串类型,如何比较?这就是我盲目输入的内容。我不知道这是否正确。 问题答案: 试试这个 您可能要处理IllegalArgumentException,如果“ s”值与
测试变量的常用方法是检查它是否引用singletone: 根据PEP-8,建议将此方法作为检查的唯一方法: 与None之类的单例进行比较时,应始终使用is或is,永远不要使用相等运算符。 虽然有时我发现以下测试在不同的来源: 这种方式看起来不错,但是我不太明白为什么简单易读的结构可以被所取代。它在某些情况下更有用,还是指代码风格? UPD:使用我发现非常有用(到目前为止):
实现后缀计算器,需要检查运算符的优先级是否低于另一个运算符。以下是我到目前为止所拥有的: 我尝试了许多不同的方法来检查传入的字符的优先级,但都没有用。有没有简单的方法来比较一个枚举的两个值?我需要创建一个循环吗?
我是MVC编程的新手。所以我用的是play框架。 获取未捕获的引用Error:未定义MODERATED