简体   繁体   English

有人可以帮我这个Java代码吗? 循环错误

[英]Can someone help me with this java code? Loop error

I am newish to programming and am trying to make a higher or lower game, but am having a few problems. 我不熟悉编程,正在尝试制作更高或更低的游戏,但是有一些问题。 First, I want the program to loop when the card is guessed right ie the lower option is chosen and it is lower. 首先,我想让程序在猜对卡时循环,即选择较低的选项,并且较低。 However it crashes after the second loop and nothing happens. 但是,它在第​​二个循环后崩溃,什么也没有发生。 When it is game over, I would and chose to play again, nothing happens. 游戏结束后,我会选择再次玩,什么都没有发生。 if someone could help me solve these problems it would be much appreciated. 如果有人可以帮助我解决这些问题,将不胜感激。 Thanks 谢谢

import

Try this : 尝试这个 :

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int card = 0;
    int cardNext;

    String userResponse;
    String userPlayAgain;
    boolean userGuessedRight = true;

    do {
        do {
            Random randomNumbers = new Random();
            card = randomNumbers.nextInt(13 - 1 + 1) + 1;
            System.out.println("Card is " + card);

            System.out.print("Higher or Lower?");
            cardNext = randomNumbers.nextInt(13) + 1;
            userResponse = scan.next();
            userGuessedRight = (userResponse.equalsIgnoreCase("H") && cardNext >= card)
                    || (userResponse.equalsIgnoreCase("L") && cardNext <= card);

            if (userGuessedRight) {
                System.out.println("Card is " + cardNext);
                System.out.print("Higher or Lower?");
                userResponse = scan.next();
            } else {
                break;
            }
        } while (userResponse.equalsIgnoreCase("H") && cardNext < card || userResponse.equalsIgnoreCase("L") && cardNext > card);
        System.out.println("Card is " + cardNext);
        System.out.println("Card is higher/lower you lose – play again? Y/N : ");
        userPlayAgain = scan.next();
    } while (userPlayAgain.equalsIgnoreCase("Y"));

    do {
        if (userPlayAgain.equalsIgnoreCase("N"))

        {
            System.out.print("Thank You.");
            break;
        }

    } while (!userPlayAgain.equalsIgnoreCase("Y"));

    scan.close();
}

Edit 编辑

Here is the output : 这是输出: 程序的输出

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM