默认为continue和if else语句

时间:2010-10-11 20:57:35

标签: java

我正在尝试使用我的代码,它说非法启动类型。我正在使用switch语句但是默认:继续;彼此不同意我继续在循环之外继续。使用else语句,它表示非法的启动类型。那么我该怎么做才能尝试,继续和else语句。

   public class Menu {
private Inventory database;
private char menuItem;
private Scanner input;
private char mode;
int code;


public Menu(Inventory database)
{
    this.database = database;
    menuItem      = 'N';
    input = new Scanner(System.in);
}

public Menu(MyArrayList database)
{
    this.database = database;
    menuItem = 'A';
    input = new Scanner(System.in);

}

private void showMenu()
{
    if(code == 'A'){

    System.out.println();
    System.out.println("------------------");
    System.out.println("Display Movies : D");
     System.out.println("Add Movie      : A");
    System.out.println("Delete Movie   : X");
    System.out.println("Select Mode    : M");
    System.out.println("Exit           : E");
    System.out.println("------------------");
    System.out.println();
    System.out.print("Please make your selection: ");

}
else    
{
    System.out.println();
    System.out.println("------------------");
    System.out.println("Display Movies : D");
    System.out.println("Rent a Movie   : R");
    System.out.println("Reserve a Movie: S");
     System.out.println("Select Mode   : M");
    System.out.println("Exit           : E");
    System.out.println("------------------");
    System.out.println();
    System.out.print("Please make your selection: ");

}
}

private void rentMovie(int productID)
{
    int index = database.getIndex(productID);
    if( index == -1)
    {
        System.out.println("There is not such a code.");
    }
    else
    {
        if( database.getMovie(index).getIsRented())
        {
            System.out.println("You cannot rent " +  database.getMovie(index).getTitle() + ". It is already rented.");

        }
        else
        {
            database.getMovie(index).setIsRented(true);
            System.out.println("Please take your movie.");

        }
    }

}


private void reserveMovie(int productID)
{
    int index = database.getIndex(productID);
    if( index == -1)
    {
        System.out.println("There is not such a code.");
    }
    else
    {
        if( database.getMovie(index).getIsReserved() )
        {
            System.out.println("You cannot reserve " +  database.getMovie(index).getTitle() + ". It is already reserved.");
        }
        else
        {
            if( database.getMovie(index).getIsRented())
            {
                database.getMovie(index).setIsReserved(true);
                System.out.println( database.getMovie(index).getTitle() + " is reserved for you." );
            }
            else
            {
                System.out.println( database.getMovie(index).getTitle() + " is available. You can rent it if you like.");
            }
        }
    }

}

try{
    if(mode == 'A'){
        switch(menuItem){
            case 'N':
                break;
            case 'D':
                database.print();
                showMenu();
                menuItem = input.next().charAt(0);
                break;
            case 'A':
                String title;
                System.out.println("Enter movie title, then press enter");//movie title,
                title= input.nextLine();
                System.out.println("Enter movie code, then press enter");//enter movie code,then press enter
                code = Integer.parseInt(input.nextLine());
                addMovie(title,code);
                menuItem ='N';
                break;
            case 'X':
                System.out.println("");
                deleteMovie(code);
                menuItem ='N';
                break;
             case 'M':
                selectMode();
                menuItem = 'N';
             case 'E':
                System.out.print("Program terminated.");
                System.exit(0);
                break;
            default:
                continue;
        }
    }
}
   else
{
    public void run(){
           int code;
    while(true)
    {

        switch(menuItem)
        {
            case 'N':
                break;
            case 'D':
                database.print();
                showMenu();
                menuItem = input.next().charAt(0);
                break;
            case 'R':
                System.out.print("Please enter product code:");
                rentMovie( input.nextInt() );
                showMenu();
                menuItem = input.next().charAt(0);
                break;
            case 'S':
                System.out.print("Please enter product code:");
                reserveMovie( input.nextInt() );
                showMenu();
                menuItem = input.next().charAt(0);
                break;
            case 'E':
                System.out.print("Program terminated.");
                System.exit(0);
                break;
            default :
                showMenu();
                menuItem = input.next().charAt(0);
        }

    }
}

}

3 个答案:

答案 0 :(得分:1)

else阻挡了你try,这没有任何意义。不,只是坏的缩进。

你的catch阻止或finally阻止在哪里?只有try是没有意义的。此外,您不能只在else块的中间声明一个函数。

基本上,我建议你重新学习你正在使用的任何指南的“Java语法”章节,因为这段代码只是各种各样的错误。

答案 1 :(得分:1)

A ..几个指针.. 首先,你的尝试没有捕捉。 你的案例陈述缺少{}块。 而且你不能在else块中创建一个方法。

进一步回答您的问题:类型的非法启动意味着您尚未启动变量。例如“menuItem”

编辑:为了进一步说明,默认应该是中断;不要继续;

Edit2:进一步你的第二个开关包含一个布尔值作为参数......

答案 2 :(得分:0)

通过编辑,现在显示问题。 您的尝试在方法体之外开始。

reserveMovie在尝试开始前关闭,因此无效。