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

如何编写Do/While验证?

如何编写Do/While验证?

白衣非少年 2022-09-01 18:05:48
我目前正在学习Java课程的入门课程,我真的很想改进,但我正在努力完成这个任务。任务的要求是实现一个循环,该循环允许用户通过键入 yes 继续玩游戏。跟踪用户:使用递增变量进行的胜利,损失和游戏当用户不再希望继续时,打印其结果,显示跟踪的变量:赢、输和玩过的游戏实施输入验证循环以确保用户输入正确的输入(h、t、H、T)我相信除了最后一个之外,我已经完成了所有操作,我已经尝试了无数次使用do和while循环,但我得到的最接近的是错误的输入循环,而正确的输入将绕过所有其他if/while/else语句。如果可能的话,我会非常感谢有人看看我的代码,并解释我可以做得更好的地方,以及我如何完成或接近最后一个要求。public static void main(String[] args) {    Scanner scan = new Scanner(System.in);    String input, inputUpper;    char userGuess;    char coinFlip;    int randNum;    int wins = 0;    int losses = 0;    int total = 0;    String choice = "yes";    do {        System.out.print("I will flip a coin guess 'H' for heads or 'T' for         tails --> ");        input = scan.nextLine();        inputUpper = input.toUpperCase();        userGuess = inputUpper.charAt(0);        randNum = (int) (Math.random() * 2);        if(randNum == 0)        {            coinFlip = 'H';        }        else        {            coinFlip = 'T';        }        System.out.println("\nYou picked " + userGuess +         " and the coin flip was " + coinFlip + " so ...");        if(userGuess == coinFlip)        {            System.out.println("You win!");            wins ++;            total ++;        }        else        {            System.out.println("Better luck next time ...");            losses ++;            total ++;        }        System.out.println("Do you want to continue(yes/no)?");        choice=scan.nextLine();    } while(choice.equalsIgnoreCase("yes"));    System.out.println("Thank you for playing.");    System.out.println("You guessed correctly this many times: " +wins);    System.out.println("You guessed incorrectly this many times: " +losses);    System.out.println("During this session you've played this many games: " +total);    }}我希望程序需要T / t或H / h才能继续,如果用户输入了不正确的字母或数字,它将要求他们输入t或h。
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

以下是验证输入的简单方法:


do {

    System.out.print("I will flip a coin guess 'H' for heads or 'T' for tails --> ");

    input = scan.nextLine();

    inputUpper = input.toUpperCase();

} while (!inputUpper.equals("T") && !inputUpper.equals("F"));

你可以在最后为“是”/“否”做同样的事情。


我认为你在这方面做得很好。


查看完整回答
反对 回复 2022-09-01
  • 1 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号