如何将在该switch语句中找到的值返回给该类的其余部分以供使用(我想在该switch语句之外使用oneTotal,twoTotal等)?这是switch语句的代码:
switch(itemNo){
case 1:
double oneTotal = 2.98 * userQuantity;
return oneTotal;
case 2:
double twoTotal = 4.50 * userQuantity;
return twoTotal;
case 3:
double threeTotal = 9.98 * userQuantity;
return threeTotal;
case 4:
double fourTotal = 4.49 * userQuantity;
return fourTotal;
case 5:
double fiveTotal = 6.87 * userQuantity;
return fiveTotal;
}
在switch语句的外面,我希望一旦用户停止使用switch语句(我将它放在while循环中),然后将FiveTotal的总数相加,然后希望将五个总数返回以在main方法中使用类的内容(switch语句在其自己的double,nonvoid类中,因此它可以返回值)。
尝试在switch语句之前定义一个称为double类型的结果的变量,例如:
double result = 0.;
switch(itemNo){
case 1:
result = 2.98 * userQuantity;
break;
....
}
return result;
该方法必须只包含必要的代码才能完成其工作。该方法的使用者必须担心如何处理数据。
对于您的情况,包含此switch
的方法必须只关心基于参数和方法的客户端返回正确的值,例如public static void main(String[] args)
必须评估该方法执行结果的处理方式。
这是您的情况的工作方式:
public static double yourMethod(int itemNo) {
double result = 0;
switch(itemNo) {
case 1:
result = 2.98 * userQuantity;
break;
case 2:
result = 4.50 * userQuantity;
break;
case 3:
result = 9.98 * userQuantity;
break;
case 4:
result = 4.49 * userQuantity;
break;
case 5:
result = 6.87 * userQuantity;
break;
}
return result;
}
public static void main(String[] args) {
//some code...
double grandTotal = 0;
//probably this may be in a loop or something similar
int itemNo = ...;
//this method is consumer/client of yourMethod, directly noted by line below
double someValue = yourMethod(itemNo);
grandTotal += someValue;
//more code...
//do something with the result e.g. print it so the user may read it
System.out.println("Grand total: " + grandTotal);
}
您可以在switch语句之外创建一个变量,并且对于其余类可见,以跟踪返回值:
public double sumFives = 0; //global variable
/* some codes */
switch(itemNo){
case 1:
double oneTotal = 2.98 * userQuantity;
return oneTotal;
case 2:
double twoTotal = 4.50 * userQuantity;
return twoTotal;
case 3:
double threeTotal = 9.98 * userQuantity;
return threeTotal;
case 4:
double fourTotal = 4.49 * userQuantity;
return fourTotal;
case 5:
double fiveTotal = 6.87 * userQuantity;
sumFives += fiveTotal;
return fiveTotal;
}
}
在那里,您可以在switch语句后访问总和。如果要跟踪每个单独的返回值,只需使用ArrayList。
希望这会有所帮助:)
杨
在switch语句的顶部定义一个变量,以便在switch范围内可见。然后在每种情况下将您的值分配给该变量。然后作为最后一行返回您分配的变量。]>
double returnValue;
switch(itemNo){
case 1:
double oneTotal = 2.98 * userQuantity;
returnValue = oneTotal;
break;
case 2:
double twoTotal = 4.50 * userQuantity;
returnValue = twoTotal;
break;
case 3:
double threeTotal = 9.98 * userQuantity;
returnValue = threeTotal;
break;
case 4:
double fourTotal = 4.49 * userQuantity;
returnValue = fourTotal;
break;
case 5:
double fiveTotal = 6.87 * userQuantity;
returnValue = fiveTotal;
break;
}
return returnValue;
以下应该起作用:
double value = 0.0;
switch(itemNo){
case 1:
double oneTotal = 2.98 * userQuantity;
value = oneTotal;
break;
case 2:
double twoTotal = 4.50 * userQuantity;
value = twoTotal;
break;
case 3:
double threeTotal = 9.98 * userQuantity;
value = threeTotal;
break;
case 4:
double fourTotal = 4.49 * userQuantity;
value = fourTotal;
case 5:
double fiveTotal = 6.87 * userQuantity;
value = fiveTotal;
break;
}
return value;
我不确定您要在其中使用该实现。...但是看来您处在正确的轨道上。
根据您想做什么,有两种方法可以解决此问题。首先,如果只想增加总和,则可以在函数外部定义一个变量并继续增加它。
在Java 14上,您可以使用