变量已经在我的方法中定义,或者有它?

时间:2015-11-29 15:06:49

标签: java variables boolean

考虑以下方法

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作为truefalse返回给我。我得到编译器错误

  

变量player1已在方法choosePlayer()

中定义

如果我删除代码行boolean player1,则会抱怨它无法找到变量player1

我知道我错过了一些简单的东西,但是我的大脑处于糊状模式,如果有人可以指出我的错误,那就太棒了。感谢

1 个答案:

答案 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");
} 

所以你根本不需要那个变量。