为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

墨色风雨 2021-11-17 16:55:09
我真的在听这个。我是 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;
查看完整描述

1 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

所以我实际上在发布后就解决了这个问题。如果其他人需要在这里寻求帮助:

我遇到的问题是由于使用扫描仪方法

variableToAssign = 扫描仪名称.next();

代替

variableToAssign = 扫描仪名称.nextLine();


查看完整回答
反对 回复 2021-11-17
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信