在我的代码中,用户使用此方法进入指定的温度范围(默认范围为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是否属于这些值?
请要求澄清。感谢。
答案 0 :(得分: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
。