【发布时间】:2014-09-29 17:42:53
【问题描述】:
我正在创建一个石头剪刀布游戏,我想让它显示个人的赢、输和平局。
当我运行它时,它总是说我输了。
我认为问题在于 if-then 语句会增加正确的值。
if(ret == 1)//starts the increases of wins and losses
{
if(ret != 0)
{
if (ret != 2)
{
w += 1;
}
}
}
if(ret == 0)
{
if(ret != 1)
{
if(ret != 2)
{
l += 1;
}
}
}
if(ret == 2)
{
if(ret != 1)
{
if(ret != 0)
{
t += 1;
}
}
}
或者在这种方法中,确定该人是赢还是输。
public static int winnerRet(char user, char compGuess)// method to determine winner
{
int ret = 3;
if(user == 'R')
{
if(compGuess != 'P')
{
if(compGuess != 'R')
{
ret = 1;
}
ret = 2;
}
ret = 0;
}
if(user == 'S')
{
if(compGuess != 'R')
{
if(compGuess != 'S')
{
ret = 1;
}
ret = 2;
}
ret = 0;
}
if(user == 'P')
{
if(compGuess != 'S')
{
if(compGuess != 'P')
{
ret = 1;
}
ret = 2;
}
ret = 0;
}
return ret;
}//end winnerRet
我认为最后可能是生成计算机选择的方法。
public static char compChoice()//starts method to generate computure choice
{
Random random = new Random();
int compNum;
char compGuess = '\0';
compNum = 1 + random.nextInt(3);
if (compNum == 1)
{
compGuess = 'R';
}
if(compNum == 2)
{
compGuess = 'S';
}
if(compNum == 3)
{
compGuess = 'P';
}
return compGuess;
}//end method compChoice
我该如何解决这个问题?
【问题讨论】:
-
运行程序有没有报错?
-
您可能想尝试将 if/else 语句与逻辑运算符(&& 和 ||)结合起来,以使其可读
-
很多 if 语句都是多余的。如果它等于某个东西,它肯定不能等于其他两个。
-
您的代码非常不透明,您可能应该在多个地方使用枚举。
-
让我们从
if(ret == 1) { if(ret != 0) { if (ret != 2){ w += 1; } } }开始,你的逻辑是什么? 1 已经不是 0 或 2....
标签: java if-statement increment