2014-10-08 134 views
-2

有關如何使這些變量在if語句之外使用的任何提示?「___」無法解析爲變量

Scanner kb = new Scanner(System.in); 
    System.out.println("Please enter a length of a side of a triangle: "); 
    double num1 = kb.nextDouble(); 
    System.out.println("Please enter a length of a side of a triangle: "); 
    double num2 = kb.nextDouble(); 
    System.out.println("Please enter a length of a side of a triangle: "); 
    double num3 = kb.nextDouble(); 

    if (num1>num2){ 
     if (num1>num3){ 
      double hypo = num1; 
      double side1 = num2; 
      double side2 = num3; 
     }else{ 
      double hypo = num3; 
      double side1 = num1; 
      double side2 = num2; } 
    }else if (num2>num3){ 
     double hypo = num2; 
     double side1 = num1; 
     double side2 = num3; } 

    if ((hypo*hypo)-((side1*side1)+(side2*side2)) == 0){ 

    } 

我也試圖做這種方式:

Scanner kb = new Scanner(System.in); 
    System.out.println("Please enter a length of a side of a triangle: "); 
    double num1 = kb.nextDouble(); 
    System.out.println("Please enter a length of a side of a triangle: "); 
    double num2 = kb.nextDouble(); 
    System.out.println("Please enter a length of a side of a triangle: "); 
    double num3 = kb.nextDouble(); 
    final double hypo; 
    final double side1; 
    final double side2; 

    if (num1>num2){ 
     if (num1>num3){ 
      hypo = num1; 
      side1 = num2; 
      side2 = num3; 
     }else{ 
      hypo = num3; 
      side1 = num1; 
      side2 = num2; } 
    }else if (num2>num3){ 
     hypo = num2; 
     side1 = num1; 
     side2 = num3; } 

    if ((hypo*hypo)-((side1*side1)+(side2*side2)) == 0){ 

    } 

我這個昨天在網站上的幫助,但不明白是怎麼獲得的解決方案。解釋會很好

+0

您可以查看一些關於該在線語言的教程。這個描述了[變量作用域](http://www.java2s.com/Tutorial/Java/0020__Language/VariableScope.htm) – scrappedcola 2014-10-08 00:54:02

回答

2

是的。將聲明向上移動,以便變量仍有範圍,

double hypo = num3; 
double side1 = num2; 
double side2 = num1; 
if (num1 > num2){ 
    if (num1 > num3){ 
    hypo = num1; 
    side1 = num2; 
    side2 = num3; 
    } else { 
    hypo = num3; 
    side1 = num1; 
    side2 = num2; 
    } 
} else if (num2 > num3) { 
    hypo = num2; 
    side1 = num1; 
    side2 = num3; 
}