我可以实例化一个开关吗?或者这有什么问题?

时间:2013-10-08 22:44:58

标签: java compiler-errors switch-statement instantiation

所以,到目前为止,一切都在膨胀,因为我之前从未参与过多个课程的个人项目,而且到目前为止,当我给出错误时,我能够自己解决所有问题。我不确定是否可以实例化switch语句,或者我实际上正在使用正确的词汇来表达我正在尝试做的事情。如果我不能得到一些帮助,我可以改变什么来使这项工作和/或将来帮助我?这是我的代码:

import java.io.*;
import java.util.*;

public class SetUp_Menu    {
    public switch setup_menu;

    public static void main(String args[]){
        System.out.println("Welcome to setup. ");
        System.out.println("1. First setup");
        System.out.println("2. I didn't mean to setup, go back");

        switch(setup_menu){
            case 1:
                SetUp first = new SetUp();
            }
        }
    }   
}

这是我的错误:

  

文件:C:\ Users \ NoNeedForThisToBeHere \ Ruby \ SetUp_Menu.java [line:6]
  错误:非法启动类型
  文件:C:\ Users \ NoNeedForThisToBeHere \ Ruby \ SetUp_Menu.java [line:6]
  错误:';'预期

非常感谢任何帮助,谢谢!

4 个答案:

答案 0 :(得分:2)

您没有实例化switch对象。您可以声明int和枚举,或者在Java 7 +中声明String,然后您可以启用它。根据您的菜单,int是个不错的选择。

public int setup_menu;

您需要根据用户的选择填充setup_menu

答案 1 :(得分:2)

switch Control Flow http://en.wikipedia.org/wiki/Control_flow#Case_and_switch_statements)的Java(和许多其他)语言的保留字,不是可以实例化的类型,也不是有效的标识符您可以使用变量名称。

答案 2 :(得分:0)

  public class SetUp_Menu {
    // modify this line public switch setup_menu;
    public static int setup_menu = 0;

    public static void main(String args[]) {
        System.out.println("Welcome to setup. ");
        System.out.println("1. First setup");
        System.out.println("2. I didn't mean to setup, go back");

        switch (setup_menu) {
        case 1:
            SetUp first = new SetUp();
            break;
        default:
            break;
        }
    }
}

您没有实例化切换对象。你可以声明一个int,enum,和byte,char和short,或者在Java 7 +中声明一个String

答案 3 :(得分:0)

在Java中,您可以使用intString(来自Java 7)作为switch语句的switch参数,而不是“切换”对象。

例如,您可以从标准输入中获取数字并使用开关:

import java.io.*;
import java.util.*;

public class SetUp_Menu
{

     public static void main(String args[])
     {
       System.out.println("Welcome to setup. ");
       Scanner in = new Scanner(System.in);
       int menu_choice = in.nextInt();
       switch(menu_choice)
       {
         case 1:
           System.out.println("1. First setup");
           break;
         case 2:
           System.out.println("2. Second setup");
           break;
         default:
           System.out.println("This setup case will be executed " + 
                              "if not any else case is met (optional).");
           break;

       }
    }
}

请注意每个案例中的break;行。这是因为如果没有退出switch语句,将执行所选案例下面的案例(控制流将继续),直到找到中断或返回命令或执行所有案例。

有关详细信息,请参阅此处:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html