2013-02-14 59 views
-1

我需要使用if-else循環的變量作爲方法的參數,或者讓我們說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圈外的,它不能被解析爲variable..How使用這個變量出的if-else循環?

+0

的if-else循環?沒有循環,只有一個分支。 – Thomas 2013-02-14 15:50:48

+0

Java中的所有變量都屬於**範圍**。通常用大括號表示。當大括號關閉時,「y」不再是「範圍內」。谷歌搜索「Java範圍」瞭解更多信息。 – 2013-02-14 15:51:25

回答

0

您必須聲明並初始化變量y出的if-else循環。

另外您的陳述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); 
} 
+0

我將'myvar'初始化爲一個包含數字的字符串,例如'「0」',否則他會得到一個'NumberFormatException'。另請注意,'y'不必初始化,因爲它將由分支中的分配來初始化。 – Thomas 2013-02-14 15:55:18

+0

@Thomas謝謝,代碼更新 – laguille 2013-02-14 15:58:58

+0

非常感謝,它的工作原理! – user2052015 2013-02-14 17:20:31

4

只要在if-else之外聲明變量,就在之前。

Double y = 0; if() y =X; else y =Y;

+0

'雙y = 0'不能編譯 – laguille 2013-02-14 15:52:07

1

你有兩個選擇:

  • 你可以聲明爲一個類的成員變量
  • 你可以在其中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 
} 

// 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 
}