Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在循环之外使用属于if-else循环的元素?_Java_Variables_Arguments_If Statement - Fatal编程技术网

Java 如何在循环之外使用属于if-else循环的元素?

Java 如何在循环之外使用属于if-else循环的元素?,java,variables,arguments,if-statement,Java,Variables,Arguments,If Statement,我需要使用一个if-else循环的变量作为一个方法的参数,或者说在if-else循环之外的某个地方,但是在同一个类中 public static String myvar; if(x > 5) { myvar = 0 ; Double y = Double.parseDouble(myvar); System.out.prin

我需要使用一个if-else循环的变量作为一个方法的参数,或者说在if-else循环之外的某个地方,但是在同一个类中

     public static String myvar;

                if(x > 5) {
                    myvar = 0 ;
                    Double  y = Double.parseDouble(myvar);
                    System.out.println("The value is: "+ y); }
                else
                {

                  Double  y= Double.parseDouble(myvar);
                  System.out.println("The value is: "+ y);
                }

因此,每当我在循环之外的某个地方使用变量y时,它就不能被解析为变量。如何在if-else循环之外使用此变量?

只需在if-else之外声明变量,就在前面

Double y=0;
如果()
y=X;
其他的

y=y

您必须在if-else循环中声明并初始化
y
变量

还有您的语句
myvar=0将不会编译,因为
myvar
是一个字符串

String myvar = "0";
Double y = 0.0;

if(x > 5) {
  y = Double.parseDouble(myvar);
  System.out.println("The value is: "+ y);
} else {
  y= Double.parseDouble(myvar);
  System.out.println("The value is: "+ y);
}

您有两个选择:

  • 可以将其声明为类成员变量
  • 您可以在
    if/else
    所在的方法的范围内声明它
举几个例子:

// as a member variable

public String myvar;
private Double y;

public void SomeMethod(int x)
{
    if(x > 5)
    {
        this.myvar = "0";
        this.y = Double.parseDouble(this.myvar);
        System.out.println("The value is: " + this.y);
    }
    else
    {
        this.y = Double.parseDouble(this.myvar);
        System.out.println("The value is: " + this.y);
    }

    // use this.y here
}


如果有别的循环?没有循环,只有一个分支。Java中的所有变量都属于一个作用域。通常用花括号表示。当卷曲括号闭合时,“y”不再是“范围内”。谷歌搜索“Java scope”以获取更多信息。
Double y=0
不会编译。我会将
myvar
初始化为包含数字的字符串,例如
“0”
,否则他将获得
NumberFormatException
。还要注意,
y
不必初始化,因为它将由分支中的赋值初始化。
// as a method variable

public String myvar;

public void SomeMethod(int x)
{
    Double y;

    if(x > 5)
    {
        this.myvar = "0";
        y = Double.parseDouble(this.myvar);
        System.out.println("The value is: " + y);
    }
    else
    {
        y = Double.parseDouble(this.myvar);
        System.out.println("The value is: " + y);
    }

    // use y here
}