调用方法java(newbie)时出现语法错误

时间:2013-12-16 17:52:10

标签: java object methods syntax-error bluej

发布的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;
}

2 个答案:

答案 0 :(得分:0)

你可以像任何其他方法一样调用void方法,除了你不必对返回值做任何事情,因为没有。

case 2:
    listBasket(basket);
    break;

对于您的第三种情况,如果您希望将double作为ArrayList传递,则必须同时传递0double,而不是仅发布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)

你已经发送了总数,但是你还没有发送一个篮子。