0

在我的代码中,用户使用此方法输入指定的温度范围(默认范围为 0 - 100):

public class range {   
     public void rangeset ()
      {
        int range1 = 0;
        int range2 = 100;

        System.out.println("Please note that the default temp range is 0-100");
        System.out.println("What is the starting temperature range?");
        range1 = sc.nextInt();
        System.out.println("What is the ending temperature range?");
        range2 = sc.nextInt();
        System.out.println("Your temperature range is " + range1 + " - " + range2);  

      HW_5.mainMenureturn();

    }//end rangeset method (instance method)

}//range class

再往下,我有一个输入要求用户输入他们想要转换为华氏温度的数字。

public class HW_5 {
   public static double fahrenheit2Centigrade  ()
    {
        double result;
        BigDecimal quotient = new BigDecimal("1.8");


        //take in input, take input as BigDecimal
        System.out.println("Please enter the fahrenheit temperature you wish to convert to celsius");   
        BigDecimal fah = sc.nextBigDecimal();

     }
}

所以,我想要做的是确保他们输入的数字(这是一个 BigDecimal)在另一种方法中指定的范围内。

1)我如何让我的rangeset方法返回范围的开始编号和范围的结束编号,因为您不能返回两个值?

2) 然后我如何使用这些返回值来检查fahrenheit2centigrade方法中的 BigDecimal 是否在这些值范围内?

请要求澄清。谢谢。

4

1 回答 1

1

这是一个范围问题。当前,您在 rangeset() 方法中声明了两个范围变量,这意味着它们仅在方法的“范围”内可见(也就是只有该方法可以访问这些变量)。

相反,您应该考虑让这些变量对整个班级可见。

public class range {   
     private int lowerBound;
     private int upperBound;

     public void rangeset ()
      {
        int lowerBound = 0;
        int upperBound = 100;

        System.out.println("Please note that the default temp range is 0-100");
        System.out.println("What is the starting temperature range?");
        lowerBound = sc.nextInt();
        System.out.println("What is the ending temperature range?");
        upperBound = sc.nextInt();
        System.out.println("Your temperature range is " + range1 + " - " + range2);  

         HW_5.mainMenureturn();

       }//end rangeset method (instance method)

    public int getLowerBound()
    {
        return lowerBound;
    }

    public int getUpperBound()
    {
        return upperBound;
    }

}//range class

一旦你以这种方式设置好东西,你就可以range在你的主类中创建一个新类,调用它的相关方法,并使用你的 getter 方法来提取你关心的数据。就像是:

public class HW_5 {
   public static double fahrenheit2Centigrade  ()
    {
        double result;
        BigDecimal quotient = new BigDecimal("1.8");
        range myRange = new range();
        myRange.rangeset();
        System.out.printf("%d - %d", myRange.getLowerBound(), myRange.getUpperBound());


        //take in input, take input as BigDecimal
        System.out.println("Please enter the fahrenheit temperature you wish to convert to celsius");   
        BigDecimal fah = sc.nextBigDecimal();

     }
}

附言。通常你应该使用大写字母来开始你的类名,即。Range而不是range.

于 2012-10-08T20:28:20.697 回答