是否可以在if语句中访问方法语句的结果?我正在编写一个程序来计算仪表读数。Netbeans指出,它找不到我创建的方法名的符号。这是到目前为止的代码:
public class Meter_Utility {
//Begin Main Method
public static void main(String[] args) {
//new scanner object
Scanner input = new Scanner(System.in);//create new scanner object
//Declarations
double prevMeter;
double currMeter;
double rate = 0;
// double totalUsage = 0;
//obtain meter readings from user
System.out.print("Welcome to the City Power Bill Calculator! Please enter your previous meter reading: ");
prevMeter = input.nextDouble();
System.out.print("Please enter your Current meter reading: ");
currMeter = input.nextDouble();
//output total usage
System.out.printf("your usage was: %.1f KwHs", totalUsage(prevMeter, currMeter));
//calculate rate
if (totalUsage < 500) {
rate = .0809;
}
else if (totalUsage > 500 && totalUsage < 900){
rate = .091;
}
else {
rate = .091;
}
//output rate
System.out.printf("nYour rate was: %.4f/KwH", rate);
} //End Main Method
/**
* Method to calculate total Usage
* @param u1
* @param u2
* @return difference of month 1 and month 2
*/
private static double totalUsage(double u1, double u2) {
return u2 - u1;
}
}
因此,我希望在if语句中可以访问totalusage,这样我就可以确定速率并继续。
我已经在Stackoverflow上研究了类似的帖子,并空了。我在这里研究了:对于IF/其他陈述也是如此:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html
您应该声明一个变量以库存您的总使用情况,或者每次调用该方法。
带有变量:
double totalUsage = totalUsage(prevMeter, currMeter);
System.out.printf("your usage was: %.1f KwHs", totalUsage);
//calculate rate
if (totalUsage < 500.0) {
rate = .0809;
}
else if (totalUsage > 500.0 && totalUsage < 900.0){
rate = .091;
}
else {
rate = .091;
}
//output rate
System.out.printf("nYour rate was: %.4f/KwH", rate);
通过调用方法:
//output total usage
System.out.printf("your usage was: %.1f KwHs", totalUsage(prevMeter, currMeter));
//calculate rate
if (totalUsage(prevMeter, currMeter) < 500.0) {
rate = .0809;
}
else if (totalUsage(prevMeter, currMeter) > 500.0 && totalUsage(prevMeter, currMeter) < 900.0){
rate = .091;
}
else {
rate = .091;
}
//output rate
System.out.printf("nYour rate was: %.4f/KwH", rate);