【问题标题】:How do I use a variable defined in an 'if' statement?如何使用“if”语句中定义的变量?
【发布时间】:2011-06-06 14:52:50
【问题描述】:
public class Help
{
    public static void main (String[] args)
    {
        if (index = 1)
        {
            String greeting = "hello";
        }
        else
        {
            String greeting = "goodbye";
        }
    }

    callAMethod(greeting);
}

当我在 if 语句中定义字符串时,我得到一个“找不到符号”错误。我怎样才能解决这个问题,并且仍然能够根据上述条件创建一个字符串?

【问题讨论】:

  • 索引从何而来?它没有在任何地方定义。
  • @Cold - 你怎么知道它是 Java?
  • @Ash 主函数的声明。一个 C# 主函数大写,msdn.microsoft.com/en-us/library/acy3edy3%28v=vs.80%29.aspx
  • 我知道这不在原始问题中,但如果它是一个字符串数组,如果我事先不知道数组的尺寸,我该怎么做?
  • @Jayden Check out 使用泛型的 ArrayList 来完成。

标签: variables if-statement conditional scope


【解决方案1】:

怎么样

public static void main (String[] args){
    String greeting;
    if( index == 1){
       greeting = "hello";
    }else{
       greeting = "goodbye";
    }
 }

 callAMethod(greeting);
}

【讨论】:

    【解决方案2】:

    在范围之外声明它 -

    String greeting = "goodbye";
    if( index == 1)
    {
        greeting = "hello";
    }
    
    callAMethod(greeting);
    

    【讨论】:

      【解决方案3】:

      if 块之外声明变量。

      if 语句之前,你可以说String greeting = "";

      然后,在ifelse 块内,你说greeting = "hello"; 等等。

      所以你已经将变量的声明和赋值分开了。

      【讨论】:

        【解决方案4】:

        可以在语句前定义greeting变量:

        String greeting;
        
        if (index == 1) {
           greeting = "hello";
        } else {
           greeting = "bye";
        }
        
        System.out.println(greeting);
        

        【讨论】:

        • 我知道这不在原始问题中,但如果它是一个字符串数组,如果我事先不知道数组的尺寸,我该怎么做?
        • 您可以定义一个 int(称为计数器),就像我为那个 String 所做的那样。然后在 if/else 或循环之后,您可以执行类似 String[] array = new String[counter]
        猜你喜欢
        • 1970-01-01
        • 2023-03-19
        • 2017-03-21
        • 1970-01-01
        • 2018-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多