java:带开关的循环仅有时有效

我真的在听这个。我是 Java 新手,遇到了最奇怪的事情。


这是家庭作业,我一步一步来。我的问题是循环只是继续并停止要求输入,只是一直循环直到它终止。我的评论主要是针对我自己的。我试图提取导致我的问题的原因并将其张贴在这里。


看看“hatColor”开关,您会注意到我确保用户仅从我分配的选项中输入的方式。我应该使用异常处理程序还是什么?


无论如何,简而言之,问题是如果我输入带有空格的内容,循环会跳过询问我的下一个输入。就像,如果我在第一次提示时向扫描仪输入“yyyyy”,程序将终止并且不给我输入其他内容的机会。


拜托,任何理解这一点的人,我真的很感激你的帮助。


import java.util.Scanner;


public class Testing

{

    static String hatColor;

    public static void main(String[] args) {

    gameStart();    

    }


public static void gameStart() 

{       

    Scanner userInput = new Scanner(System.in);

    boolean keepLooping = true;

    int loopCounter = 0;


    System.out.println("The game begins. You must choose between 3 different colored hats."

            + " You can type white, black, or gray.");


    while (keepLooping == true) 


    {

        hatColor = userInput.next();

        switch(hatColor)

        {

        case "white":

            System.out.println("You have chosen the path of well intentioned decisions.");

            walletDrop();

            //the two items below are only there in case the wallet drop somehow completes without calling another method

            keepLooping = false; // stops the while loop from looping again.

            break; // breaks out of the  switch

        case "gray": 

            System.out.println("You have chosen the path of free will.");

            walletDrop();

            keepLooping = false;

            break;

        case "black" :

            System.out.println("You have chosen the path of personal gain.");

            walletDrop();

            keepLooping = false;

            break;


墨色风雨
浏览 99回答 1
1回答

慕容3067478

所以我实际上在发布后就解决了这个问题。如果其他人需要在这里寻求帮助:我遇到的问题是由于使用扫描仪方法variableToAssign = 扫描仪名称.next();代替variableToAssign = 扫描仪名称.nextLine();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java