Java:嵌套If语句

时间:2015-10-09 03:01:45

标签: java if-statement

我为一个项目制作视频游戏,它是一个基于文本的RPG,可以做出很多决定(分支故事)。为了开始我的游戏,用户输入" 1"在if语句中,还有另一个if语句。但每当我运行代码时,我都会输入" 1&#34 ;, println文本会显示,构建将结束而不是继续。我可以不嵌套这样的if语句吗?

    System.out.println("--------------------------");
    System.out.println("# What Might've Happened #");
    System.out.println("--------------------------\n");
    System.out.println("You wake up. It's almost 7. Better get moving,\ncan't be late on the first day of school!");
    System.out.println("1. Continue");
    System.out.println("\nPress 1 and then press enter");

    String input = in.nextLine();

此代码显示,但此后不会继续。

    if(input.equals("1")) {
            System.out.println("\nYou get to school at 7:15.\nYou can either:");
            System.out.println("1. Go to your first class.");
            System.out.println("2. Go see if you can make some friends.");

代码的其余部分

    switch (input) {
        case "1":
            System.out.println("");
            break;
        case "2":
            System.out.println("\n Do you want to go to the media center or the locker bay?");
            break;
        default:
            System.out.println ("Invalid Command!");
            break;
        }
    }
else {
    System.out.println ("Invalid Command!");
}

1 个答案:

答案 0 :(得分:0)

您实际上并没有要求用户提供更多输入......

String input = in.nextLine();

if(input.equals("1")) {
    //... input is still equal to "1"
    switch (input) {
        case "1":
            System.out.println("");
            break;

因此,基本上,您的代码会命中if语句,将一些文本转储给用户,执行switch语句,其中input仍然等于1,打印一个空白行,然后退出main方法并终止VM ...因为没有循环来阻止它...我认为这将在以后出现

基本上,您需要向用户请求更多输入...

String input = in.nextLine();

if(input.equals("1")) {
    //... input is still equal to "1"
    input = in.nextLine();
    switch (input) {
        case "1":
            System.out.println("");
            break;