【问题标题】:Variable has already been defined in my method, or has it?变量已经在我的方法中定义了,或者有吗?
【发布时间】:2015-11-29 15:06:48
【问题描述】:

考虑以下方法

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,则将player1truefalse 的形式返回给我。我得到编译器错误

变量 player1 已经在方法 choosePlayer() 中定义

如果我删除代码行boolean player1,那么它会抱怨找不到变量player1

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

【问题讨论】:

  • 删除boolean player1 = true;中的booleanfalse也一样。
  • 哈!这对我来说无疑是漫长的一天。非常感谢你。

标签: java variables boolean


【解决方案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");
} 

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

【讨论】:

    猜你喜欢
    • 2018-10-16
    • 2017-10-19
    • 2011-02-13
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    相关资源
    最近更新 更多