考虑以下方法
public static boolean choosePlayer()
{
String whatPlayer = input("Are you Player 1 or Player 2?");
boolean player1;
if (whatPlayer.equalsIgnoreCase("Player 1"))
{
boolean player1 = true;
}
else
{
boolean player1 = false;
}
return player1;
}
我只是想让这个方法找出用户是否确实是玩家1,如果他们不是玩家1,则将player1
作为true
和false
返回给我。我得到编译器错误
变量player1已在方法choosePlayer()
中定义
如果我删除代码行boolean player1
,则会抱怨它无法找到变量player1
。
我知道我错过了一些简单的东西,但是我的大脑处于糊状模式,如果有人可以指出我的错误,那就太棒了。感谢
答案 0 :(得分:1)
player1
的第二个声明仅适用于if语句,因此您应该只保留第一个声明。
public static boolean choosePlayer()
{
String whatPlayer = input("Are you Player 1 or Player 2?");
boolean player1;
if (whatPlayer.equalsIgnoreCase("Player 1"))
{
player1 = true;
}
else
{
player1 = false;
}
return player1;
}
当然,您可以将此代码缩减为:
public static boolean choosePlayer()
{
String whatPlayer = input("Are you Player 1 or Player 2?");
return whatPlayer.equalsIgnoreCase("Player 1");
}
甚至
public static boolean choosePlayer()
{
return input("Are you Player 1 or Player 2?").equalsIgnoreCase("Player 1");
}
所以你根本不需要那个变量。