发布的2个答案都修好了。非常感谢你,我很尴尬是多么简单。
抱歉发布这样一个基本问题,谢谢你的时间。从顶部的菜单方法我希望调用2种不同的方法来完成基于输入的动作。我找不到任何地方如何调用void方法。
我不知道为什么第二个不会工作,因为我之前使用过类似的东西。
public void CheckOutMenu(ArrayList basket )
{
choice = 0;
while ( choice !=4 ) {
Scanner in = new Scanner ( System.in);
{
switch(in.nextInt()){
//print the number of items in the basket
case 1:
//working
break;
case 2:
//dont know how to call on option 2 the listBasket method
break;
case 3:
//to call the method
//error and wont compile
double totalCost = CalcTotalCost(totalCost = 0);
//printing what the method returns
System.out.print("The total price of your basket is £" );
break;
case 4:
choice = 4;
break;
default:
System.out.println("please enter a whole number that represents you're choice");
}
}
}
}
protected void listBasket(ArrayList basket )
{
//code inside works fine
}
public double CalcTotalCost(double total, ArrayList basket)
{
//code inside works fine
return total;
}
答案 0 :(得分:0)
你可以像任何其他方法一样调用void方法,除了你不必对返回值做任何事情,因为没有。
case 2:
listBasket(basket);
break;
对于您的第三种情况,如果您希望将double
作为ArrayList
传递,则必须同时传递0
和double
,而不是仅发布double
一个case 3:
/* if you don't want totalCost to go out of scope right away,
* declare it above the switch statement */
double totalCost = CalcTotalCost(0.0, basket);
...
break;
字面值。
{{1}}
答案 1 :(得分:0)
您的错误就在这里,因为我确定您知道:
double totalCost = CalcTotalCost(totalCost = 0);
但是,您的CalcTotalCost方法定义如下:
public double CalcTotalCost(double total, ArrayList basket)
你已经发送了总数,但是你还没有发送一个篮子。