Java 我不知道如何使用带有if语句字符串比较的while循环

Java 我不知道如何使用带有if语句字符串比较的while循环,java,Java,我正在为学校制作这个基于文本的冒险游戏,如果玩家没有在游戏中选择选项1或选项2,我会陷入while循环状态,因此系统会打印pick a Option,但我不知道如何执行 我曾经尝试过使用for循环、do循环、使用| | or语句而不是&&语句,以及只使用普通if语句,但它们都不起作用 import java.util.Scanner; public class Input { public static void main(String[] args) { Scanner scann

我正在为学校制作这个基于文本的冒险游戏,如果玩家没有在游戏中选择选项1或选项2,我会陷入while循环状态,因此系统会打印pick a Option,但我不知道如何执行

我曾经尝试过使用for循环、do循环、使用| | or语句而不是&&语句,以及只使用普通if语句,但它们都不起作用

import java.util.Scanner;

public class Input
{

public static void main(String[] args)
{
    Scanner scanny = new Scanner(System.in); // scanner name is scanny fyi

    System.out.print("Press Enter to begin game"); //first message!

    String EnterPress = scanny.nextLine(); //varible for when you press 
                                                                     enter

System.out.println("\nyou begin as a man named Mason Grey, you are 30 
years old, you went to college to learn how to become a detective, your 
parents are paying for your house, you were just fired from your job at 
the Police Station 1 month ago, and you have a girlfriend named Beth.");

    pause(7);

    System.out.println("\nyou arouse inside of a moving taxi");

    pause(1);

    System.out.println("\nwhat do you do?");

    pause(1.2);

    System.out.println("\nOption 1: Check your cellphone in your back 
pocket");//Option 1

    pause(1.2);

    System.out.println("\nOption 2: Ask where you are");//Option 2

    String ChoiceFirst = scanny.nextLine(); // First choice string for 
option 1 and 2

    while ((!(ChoiceFirst.equalsIgnoreCase ("Option 1"))) && (! 
 (ChoiceFirst.equalsIgnoreCase ("Option 2"))))

    {
        System.out.println("\nPick an Option Please");
    }

    if (ChoiceFirst.equalsIgnoreCase ("Option 1") ) // if the player types 
in "Option 1" then it will print the script                   |CellPhone|
    {
        System.out.println("\nYou unlock your phone with your passcode, 
the bright blue LED light hurts your eyes as you squint in the black 
leather backseat of the cab. You open your text messages with a tap and 
see 23 unread messages from your girlfriend, Beth.You groan and tap on the 
messages,\n and see the last message: \n“Mason, could you come to the 
house please? I need help with the toilet again.”");

        //This is the beginning of the A1 tree or the first option tree

        pause(6);

        System.out.println("\nwhat do you do now?"); //question asked for 
Option 1 tree

        pause(1.2);
 public static void pause(double secondsToPause) // pause function
{
    try
    {
        // type casting the resurt of the double times a long back into a 
long
        Thread.sleep((long)(1000*secondsToPause));
    }
    catch(InterruptedException ex)
    {
        Thread.currentThread().interrupt();
    }
  }
}
我只是想让游戏输出选择一个选项,如果他们没有输入选项1或选项2,请选择

完整代码:

import java.util.Scanner;

public class Input
{

public static void main(String[] args)
{
    Scanner scanny = new Scanner(System.in); // scanner name is scanny fyi

    System.out.print("Press Enter to begin game"); //first message!

    String EnterPress = scanny.nextLine(); //varible for when you press enter

    System.out.println(" \n\n");
    pause(.3);
    System.out.println("        ./osyhhhhhhhhyso/-                                                                                                                                                                                .yyyyyyy.");
    pause(.3);
    System.out.println("     `/yhhhhhhhhhhhhhhhhhhy/`                                                                                                                                                                             .hhhhhhh-");
    pause(.3);
    System.out.println("    .yhhhhhhhhhyyyyhhhhhhhhhy.                                                                                                                                                                            .hhhhhhh-");
    pause(.3);
    System.out.println("   .hhhhhhhh+-``````./yhhhhhhh.                                                                                                                                                                           .hhhhhhh-");
    pause(.3);
    System.out.println("   yhhhhhhy.          `shhhhhhs                                                                                                                                                                           .hhhhhhh-");
    pause(.3);
    System.out.println("  :hhhhhhh-            .hhhhhhh.                                                                                                                                                                          .hhhhhhh-");
    pause(.3);
    System.out.println("  ohhhhhhh              yhhhhhh/                                                                                                                                                                          .hhhhhhh-");
    pause(.3);
    System.out.println("  yhhhhhhy              shhhhhh+                      ```             ``.```                                                 ``.``                      ``..``                       ``..``               .hhhhhhh-               ```.``");
    pause(.3);
    System.out.println("  hhhhhhhs              shhhhhh+       -sssssss   `:osyyy`       .:+syyyyyyyys+-`       +ssssss/         `sssssss-      `:+syyyyyyyo/.             `:+syyyyyyyys+:.             .:+syyyyyyyys+-`          .hhhhhhh-          `-+syyyyyyyys+:`");
    pause(.3);
    System.out.println(" `hhhhhhhs              `......`       -hhhhhhh``+yhhhhhh.     .oyhhhhhhhhhhhhhhy:      :hhhhhhy         -hhhhhhh`    `+yhhhhhhhhhhhhyo`         `+yhhhhhhhhhhhhhhy+`         .ohhhhhhhhhhhhhhhy:         .hhhhhhh-        `/yhhhhhhhhhhhhhhy+`");
    pause(.3);
    System.out.println(" `hhhhhhhs                             -hhhhhhh:yhhhhhhhh.    -yhhhhhhysooshhhhhhh/      yhhhhhh-        ohhhhhh+    `shhhhhhysooshhhhhy.       `shhhhhhysoosyhhhhhhs`       :hhhhhhhysosyhhhhhhh+        .hhhhhhh-       `shhhhhhysoosyhhhhhho");
    pause(.3);
    System.out.println(" `hhhhhhhs                             -hhhhhhhhhhyssossy`   `yhhhhhh/`   `.yhhhhhh.     /hhhhhho       `hhhhhhh.    +hhhhhh/`   `-yhhhhy`      ohhhhhho.    `+hhhhhh:      .hhhhhhh:`   `:hhhhhhh-       .hhhhhhh-       ohhhhhho.    `ohhhhhh/");
    pause(.3);
    System.out.println(" `hhhhhhhs                             -hhhhhhhho-`    ``    /hhhhhhs       :hhhhhh+     `yhhhhhh`      :hhhhhho     yhhhhhy       .hhhhh:     .hhhhhhh`      `hhhhhhs      ohhhhhh+       ohhhhhho       .hhhhhhh-      .hhhhhhh`      `hhhhhhy");
    pause(.3);
    System.out.println(" `hhhhhhhs                             -hhhhhhh:             shhhhhh/       .hhhhhhy      /hhhhhh:      ohhhhhh.     yhhhhhy`       +yso/.     :hhhhhhy        shhhhhh      yhhhhhh-       /hhhhhhh       .hhhhhhh-      /hhhhhhs        yhhhhhh.");
    pause(.3);
    System.out.println(" `hhhhhhhs       `++++++++++++++       -hhhhhhh`             hhhhhhh:       `hhhhhhh`     `hhhhhhs     `hhhhhhs      +hhhhhhy:`     ``         +hhhhhhs        shhhhhh      ///++++.       :hhhhhhh       .hhhhhhh-      ohhhhhho        shhhhhh:");
    pause(.3);
    System.out.println(" `hhhhhhhs       .hhhhhhhhhhhhhh       -hhhhhhh`             hhhhhhh:       `hhhhhhh`      +hhhhhh`    :hhhhhh-      `ohhhhhhhs:`              ohhhhhhs        ://////                    `/hhhhhhh       .hhhhhhh-      ohhhhhho        shhhhhh/");
    pause(.3);
    System.out.println(" `hhhhhhhs       .hhhhhhhhhhhhhh       -hhhhhhh`             hhhhhhhsoooooooohhhhhhh.      `hhhhhh/    shhhhhy        `/yhhhhhhhy/`            ohhhhhhs                              `.:+syhhhhhhhh       .hhhhhhh-      ohhhhhhyoooooooohhhhhhh/");
    pause(.3);
    System.out.println(" `hhhhhhhs        ......-hhhhhhh       -hhhhhhh`             hhhhhhhhhhhhhhhhhhhhhhh.       ohhhhhs   `hhhhhh/          .+yhhhhhhhy+.          ohhhhhhs                           .:oyhhhhhhhhhhhhh       .hhhhhhh-      ohhhhhhhhhhhhhhhhhhhhhh/");
    pause(.3);
    System.out.println(" `hhhhhhhs              `hhhhhhh       -hhhhhhh`             hhhhhhh+:::::::::::::::`       .hhhhhh.  /hhhhhy`            `/shhhhhhhy+.        ohhhhhhs                        `:ohhhhhhyo:/hhhhhhh       .hhhhhhh-      ohhhhhhs:::::::::::::::.");
    pause(.3);
    System.out.println(" `hhhhhhhs              `hhhhhhh       -hhhhhhh`             hhhhhhh:                        ohhhhh+  shhhhh+               `-shhhhhhhh/`      ohhhhhhs                       :yhhhhhho-`  :hhhhhhh       .hhhhhhh-      ohhhhhho");
    pause(.3);
    System.out.println("  hhhhhhhs              .hhhhhhh       -hhhhhhh`             hhhhhhh:                        -hhhhhy `hhhhhh`                  .+yhhhhhhs`     ohhhhhhs        .......       +hhhhhho.     :hhhhhhh       .hhhhhhh-      ohhhhhho");
    pause(.3);
    System.out.println("  yhhhhhhy              -hhhhhhh       -hhhhhhh`             hhhhhhh:       `+++++++`         shhhhh-/hhhhho                     .+hhhhhhs     ohhhhhhs        shhhhhh      /hhhhhho       :hhhhhhh       .hhhhhhh-      ohhhhhho        /++++++-");
    pause(.3);
    System.out.println("  +hhhhhhh.             +hhhhhhh       -hhhhhhh`             yhhhhhh:       `hhhhhhh`         -hhhhh+shhhhh.        `.:/os:        /hhhhhh:    +hhhhhhs        shhhhhh     `hhhhhhh-       :hhhhhhh       .hhhhhhh-      +hhhhhho        shhhhhh:");
    pause(.3);
    System.out.println("  .hhhhhhho            -hhhhhhhh       -hhhhhhh`             ohhhhhh/       .hhhhhhy           shhhhhhhhhhs         ohhhhhy`        hhhhhh/    -hhhhhhy        yhhhhhy     .hhhhhhh-       /hhhhhhh       .hhhhhhh-      -hhhhhhs        yhhhhhh-");
    pause(.3);
    System.out.println("   /hhhhhhho.        `:yhhhhhhhh       -hhhhhhh`             -hhhhhhy`      /hhhhhh+           :hhhhhhhhhh-         :hhhhhh+`      `hhhhhh:    `yhhhhhh-      .hhhhhh+     .hhhhhhhs`    .+hhhhhhhh`      .hhhhhhh-      `yhhhhhh-      .hhhhhhy");
    pause(.3);
    System.out.println("    ohhhhhhhhs+/:://oyhhhyohhhhh       -hhhhhhh`              ohhhhhhs:.``-+hhhhhhy`            yhhhhhhhhs           +hhhhhhs:.``.:yhhhhhs      :hhhhhhh/.``.:yhhhhhh.      shhhhhhhyo++shhyhhhhhhh`      .hhhhhhh-       :hhhhhhy/.``.:yhhhhhh:");
    pause(.3);
    System.out.println("     :yhhhhhhhhhhhhhhhhhs.:hhhhh       -hhhhhhh`              `ohhhhhhhhhhhhhhhhhy.             /hhhhhhhh:            /hhhhhhhhhhhhhhhhhs`       /hhhhhhhhhhhhhhhhhh:       `shhhhhhhhhhhhs`shhhhhh-      .hhhhhhh-        /hhhhhhhhhhhhhhhhhh:");
    pause(.3);
    System.out.println("      `/shhhhhhhhhhhhhy:  `hhhhh       -hhhhhhh`                -oyhhhhhhhhhhhhy/`              `hhhhhhhy              .+yhhhhhhhhhhhys:          .oyhhhhhhhhhhhhy+.         `/yhhhhhhhhy/` /hhhhhh/      .hhhhhhh-         .+yhhhhhhhhhhhhy+.");
    pause(.3);
    System.out.println("         `-/+ooosoo+:.     :::::       `:::::::                   `-:/+oooo+/:.                  +hhhhhh/                 .:/+ooo++:-`              `-:/+oooo+/:-`             `-/+oo+/-`   `::::::.      `:::::::`            .:/+oooo+/:-`");
    pause(.3);
    System.out.println("                                                                                                 +hhhhhh`");
    pause(.3);
    System.out.println("                                                                                          -://++shhhhhh:");
    pause(.3);
    System.out.println("                                                                                          ohhhhhhhhhhy:");
    pause(.3);
    System.out.println("                                                                                          ohhhhhhhyo:");                                                                                                                                                
    pause(.3);
    System.out.println("                                                                                          -//::-.`");            

    pause(5);

    System.out.println("\nyou begin as a man named Mason Grey, you are 30 years old, you went to college to learn how to become a detective, your parents are paying for your house, you were just fired from your job at the Police Station 1 month ago, and you have a girlfriend named Beth.");

    pause(7);

    System.out.println("\nyou arouse inside of a moving taxi");

    pause(1);

    System.out.println("\nwhat do you do?");

    pause(1.2);

    System.out.println("\nOption 1: Check your cellphone in your back pocket");//Option 1

    pause(1.2);

    System.out.println("\nOption 2: Ask where you are");//Option 2

    String ChoiceFirst = scanny.nextLine(); // First choice string for option 1 and 2

    while ((!(ChoiceFirst.equalsIgnoreCase ("Option 1"))) && (!(ChoiceFirst.equalsIgnoreCase ("Option 2"))))

    {
        System.out.println("\nPick an Option Please");
    }

    if (ChoiceFirst.equalsIgnoreCase ("Option 1") ) // if the player types in "Option 1" then it will print the script                   |CellPhone|
    {
        System.out.println("\nYou unlock your phone with your passcode, the bright blue LED light hurts your eyes as you squint in the black leather backseat of the cab. You open your text messages with a tap and see 23 unread messages from your girlfriend, Beth.You groan and tap on the messages,\n and see the last message: \n“Mason, could you come to the house please? I need help with the toilet again.”");

        //This is the beginning of the A1 tree or the first option tree

        pause(6);

        System.out.println("\nwhat do you do now?"); //question asked for Option 1 tree

        pause(1.2);

        System.out.println("\nOption 1:Text your girlfriend beth that you might be coming home late");//first selectable option for the Option 1 tree

        System.out.println("\nOption 2: Text your girlfriend if she wants chinese food");//second selectable option for the Option 1 tree

        System.out.println("\n");//indentation from the selectable options and the selected option for the Option 1 tree

        String ChoiceHome = scanny.nextLine();//input for the player for the first option for the Option 1 tree

        if (ChoiceHome.equalsIgnoreCase ("Option 1") ) //if you pick Option one it will print the script for the Option 1 tree           |HomeStatement|
        {
            System.out.println("\nYou text your girlfriend that you might be coming home late. You scroll up through the long list of messages she sent you about the toilet. You feel the cab car stop and look out the wet cab window to see that you’re home. You step outside of the cab and walk up to your house.\t When you take out your keys to open the door you see that it's open. You open the door and only 2 lights in the house are on. You walk around the living room and see a file on top of the small wooden table labeled GreyScale.");

            pause(5);

            System.out.println("What do you do now?");

            System.out.println("\nOption 1:Text you gf if she came home or not");

            System.out.println("\nOption 2: investigate the living room");

            System.out.println("");//indentation from the selectable options and the selected option for the Option 1 tree

            String ChoiceGf = scanny.nextLine();//input for the player for the first option (GF option)

            if (ChoiceGf.equalsIgnoreCase ("Option 1") )//girlfriend script
            {
                System.out.println("\nWith all of your strength and utmost quietness you pull your phone out of your back pocket and quickly text your girlfriend: Beth, did you come by the hou-  but you franticly turn off your phone as to hear a loud CRASH! outside of the apartment");

                pause(5);

                System.out.println("\nWhat do you do now?");

                pause(1.2);

                System.out.println("\nOption 1:Investigate the loud noise");

                System.out.println("\nOption 2:Run upstairs and GET YOUR GUN");

                System.out.println("");//indentation from the selectable options and the selected option for the Option 1 tree

                String ChoiceNoise = scanny.nextLine();//user input for the first option (Loud noise option)

                if (ChoiceNoise.equalsIgnoreCase ("Option 1") )//Loud noise option description
                {
                    System.out.println("\nYou stop and put down the file and walk through the kitchen and go out to the balcony, you look around in the dark rainy lime light street and you see a dumpster with a giant dent on the lid. You climb down the fire escape ladder on your balcony and walk to the other side of the alleyway towards the dumpster, completely drenched, you lean forward and find a small soaked sticky note with mushed pen marks,\n since it it isn't even legible, you don't bother with trying to decript it, you look to your left and squint through the loud stormy rain and see a cab...the cab driver! You look closely and see his silouhette juxtaposed by the bright flourescent yellow light down the street, your spine crawls .It almost looks as if he is staring directly at you, or behind you? \"Hello?\" you yell through the pouring rain, the cab driver \nrolls away and dissapears still staring down the street. ");

                    pause(5);

                    System.out.println("\nWhat do you do now?");

                    System.out.println("\nOption 1: Walk back inside with the sticky note");

                    System.out.println("\nOption 2: Go around the corner of the alleyway to see where the cab driver went");

                    String ChoiceSticky = scanny.nextLine(); // user input for sticky note option

                    if (ChoiceSticky.equalsIgnoreCase ("Option 1") )
                    {
                        System.out.println("\nYou pick up the wet sticky note with two fingers, careful not to get your fingers wet. You put the note into your pocket and look around to see if anybody is still here, just as you are about to leave the rainy alleyway, you feel a squish on your boots, and see that you have stepped on a dead bird? The questions in your head are piling up faster than you can comprehend:\n\"What is going on?\" \"Why is there a dead bird?\" \"Why am i still standing in this rain?\" you think to yourself, and you decide to leave the bird and walk back inside with the note, you close the door to keep the rain out, and walk into your room. You sit down in your chair and turn on the light next to your desk. You place the note on the table and try your hardest to understand what is even on the note.");

                        pause (5);

                        System.out.println("\nWhat do you do now?");





                    }

                    else if (ChoiceSticky.equalsIgnoreCase ("Option 2") )
                    {
                        System.out.println("\nYou run forward through the rain and turn look both ways, but the cab driver is already gone");
                    }
                }
                else if (ChoiceNoise.equalsIgnoreCase ("Option 2") )//Gun option
                {
                    System.out.println("\nYou immedietly wher remember your handgun is and you dash towards the stairs to your bedroom to get it from your cabinet next to your bed. As your about to open the cabinet you stop dead in your tracks and look out your window, to see that the dumpster under the window is completely dented and you make out a small yellow object in the center of the dent. You open the window as fast as you can and look outside to your left as your hair gets drenched in the salty rain. You see only one thing in the center of the end of the dark, narrow, alleyway,the cab driver.\t You see his dark, faceless figure staring at you with a daunting gaze, you snap out of the fearful trance and yell at the cab driver though the loud shattering rain: \nHEY! you yell, \nthe cab driver turns away and drives off into the dark, wet city lights.");
                }
            }
            else if (ChoiceGf.equalsIgnoreCase ("Option 2") ) //living 
room script` 
            {
                System.out.println("\nYou wipe your boots off on the 
carpet and walk as slow as you are physically able, staring intently at 
your open closet door. You feel as if you are literally crawling at the 
slowest speed ever to avoid your feet making any sound, as you peek into 
the wooden closet door, your eyes widen to see tht the basement door is 
wide open.");
            }
        }

        else if (ChoiceHome.equalsIgnoreCase ("Option 2") ) //Text GF 
chinese food script
        {
            System.out.println("\nYou text your girlfriend on your 
cellphone: \"Coming home do you want chinese food?\"\n slide your phone 
into your pocket and not even 2 seconds later, you feel a buzz. Confused, 
you take out your cellphone and turn on the phone, only to see she has 
messaged you back. You unlock your phone again, open your messages with a 
tap, and read the message: \n\"No im okay, ty though\"\n you're almost 
taken aback by her 
bizarre act of kindness, she usually hates talking to you and never says 
thank you at all, \"Somethings off\" you think to yourself " );
        }
    }

    else if (ChoiceFirst.equalsIgnoreCase ("Option 2") ) // if you pick 
Option 2 then it print the script for the Option 1 tree       |CabDriver|
    {                                                                                                                                                   
        System.out.println("\nYou ask the cab driver where you are, and 
he only responds with: You told me you wanted to head to queens, so thats 
where we're going. he says. You think for a moment, and realize that you 
have never even been to queens. You don't question the cab driver, but 
you definetly wonder if you are safe or not.");
    }
}

public static void pause(double secondsToPause) // pause function
{
    try
    {
        // type casting the resurt of the double times a long back into a 
long
        Thread.sleep((long)(1000*secondsToPause));
    }
    catch(InterruptedException ex)
    {
        Thread.currentThread().interrupt();
    }
  }
}

不要让用户实际输入:选项1。要玩这个游戏,已经有太多的工作要做了。相反,允许用户为选项1输入数字1。这意味着您需要重建菜单,并且该菜单应包含在while循环中:


嗯……差不多吧。将所有提示放入不同的while循环中,并验证每个循环中用户的输入。如果条目无效,则通知用户,并允许其他条目或选择退出或退出。

您需要在while循环中调用scanny.nextLine,因此它实际上会要求用户输入新的内容。问题太大,不相关的代码太多。见:
String ls = System.lineSeparator();
String choiceFirst  = "";

while (choiceFirst .equals("")) {
    System.out.println("What do you do?" + ls);
    System.out.println("Options:" + ls + "========");
    System.out.println("1) Check your cellphone in your back pocket.");
    System.out.println("2) Ask where you are.");
    System.out.println("3) Bail out of the Cab without paying!");
    System.out.print("--> ");
    choiceFirst = scanny.nextLine();
    // Make sure the entry is either "1" or "2". If not then loop
    if (!choiceFirst.matches("[1-3]")) {
        System.err.println("Invalid entry (options 1 to 3 only)" + ls);
        choiceFirst = "";
    }
} // End of while loop

if (choiceFirst.equals("3")) {
    System.out.println("You bail out of the Cab to avoid paying and break "
            + "your neck, you die instantly!" + ls + "On a good day when "
            + "you've eaten your Cherrios you would have successfull made" + ls 
            + "this jump but then you would have most likely died sitting "
            + "on the toilet dumping " + ls + "the stuff. Thanks for playing"
            + "...Bye Bye");
    System.exit(0);
}