【问题标题】:Java - printing a variable that was declared inside an if statementJava - 打印在 if 语句中声明的变量
【发布时间】:2016-01-13 22:59:25
【问题描述】:

所以我试图在 if/else 语句中声明一个整数变量,并在它之外打印出来。像这样的:

int x;
int a = 1;
if (a == 1)
{
int x = 5;
}
System.out.println(x);

这只是我正在尝试做的一个例子,因为我没有实际的代码,我不想重新做一遍。虽然这并不重要,因为这个例子正是我需要的,只有不同的变量值和名称(但它仍然是一个整数)。起初我只是在 if/else 语句中声明并初始化变量,但后来我被告知我需要在语句之外声明它......所以我这样做了,然后在语句中初始化它,然后继续调用稍后再说。但是我仍然收到一个错误,或者它说变量尚未初始化,或者如果我给它赋值(x)然后在语句中更新它,我得到的错误是它已经被声明了。任何帮助将不胜感激,谢谢。

【问题讨论】:

  • At first i just declared and initialised the variable inside the if/else statement but then I was told I need to declare it outside the statement 因为变量x 的范围在if 内结束

标签: java variables if-statement printing int


【解决方案1】:

是的。局部变量在使用前需要初始化。如果您在使用前没有初始化实例变量,则实例变量会初始化为默认值。

如果您对原因感到好奇? click here to know

再次回到你的问题,

因为考虑以下场景

关注cmets。

int x;  // declared with no value 
int a = 0;
if (a == 1)  // this is false
{
 x = 5;  // this never executed 
}
System.out.println(x); // what you are expecting to print here ?

因此您需要使用一个值进行初始化。例如:将其初始化为零,然后根据条件进行更改

int x=0;
int a = 1;
if (a == 1)
{
 x = 5;
}
System.out.println(x);

【讨论】:

    【解决方案2】:

    只需在 if 语句之前分配 int x = 0,然后不要将 x 重新声明为等于 5 的整数,而是在 if 语句中设置 x 等于 5。

    【讨论】:

      【解决方案3】:

      关键是您在上面声明了x。所以在if-statement 中的x 之前删除int。然后它工作。

      int x; 
      int a = 1; 
      if (a == 1) { 
          x = 5; 
      } 
      System.out.println(x);
      

      隐式地用 0 初始化一个整数。如果你想确定就写

      int x = 0;
      
      your code here
      

      【讨论】:

        【解决方案4】:
        int x = -1;
        int a = 1;
            if (a == 1)
            { // here begins inner 'area' for declared variables
             x = 5;
            }// and here ends
            System.out.println(x);
        

        好吧,我的错!我想让他想知道为什么并尝试一些其他的编写方式,让他被 IDE 错误“击中”。 因此,未知先生,只要您在 if 语句中声明变量“内部”,它仅在该语句中可见!所以基本上,如果你想在 if 语句中使用变量做某事,并在它之外有结果,你需要在语句之外声明它,使其具有更广泛的可访问性!如果您有任何问题,请不要犹豫;)

        附:注意重新声明具有相同名称的变量,就像你在这里尝试做的那样,找到 =)

        【讨论】:

        • 谢谢 :D 看,我知道我应该在声明之外声明它,但我不知道我不应该在 'x' 之前有 'int' 前缀.....我是java新手:D
        【解决方案5】:

        谢谢大家的回答,我意识到我犯了两个小错误,导致它无法正常工作,我(在大多数尝试中)没有在 if 语句之前为 x 声明一个值,并且我有 'int' if语句里面的x前面,导致重新减速错误。所以是的,谢谢你的快速回答:)

        【讨论】:

          猜你喜欢
          • 2014-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-12
          • 2015-06-29
          • 2021-03-04
          • 2013-01-15
          • 1970-01-01
          相关资源
          最近更新 更多