Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能帮我处理这个java代码吗?循环误差_Java - Fatal编程技术网

有人能帮我处理这个java代码吗?循环误差

有人能帮我处理这个java代码吗?循环误差,java,Java,我对编程还不熟悉,正在尝试制作一个更高或更低的游戏,但我遇到了一些问题。首先,我希望程序在猜对卡片时循环,即选择较低的选项,并且卡片较低。但是,它在第二个循环后崩溃,什么也没有发生。当比赛结束时,我会选择再次比赛,什么也没发生。如果有人能帮我解决这些问题,我将不胜感激。谢谢 import 试试这个: public static void main(String[] args) { Scanner scan = new Scanner(System.in); int card =

我对编程还不熟悉,正在尝试制作一个更高或更低的游戏,但我遇到了一些问题。首先,我希望程序在猜对卡片时循环,即选择较低的选项,并且卡片较低。但是,它在第二个循环后崩溃,什么也没有发生。当比赛结束时,我会选择再次比赛,什么也没发生。如果有人能帮我解决这些问题,我将不胜感激。谢谢

import
试试这个:

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();
}
publicstaticvoidmain(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
int卡=0;
int cardNext;
字符串用户响应;
再次播放字符串;
布尔userGuessedRight=true;
做{
做{
随机数=新随机数();
卡片=随机数。nextInt(13-1+1)+1;
System.out.println(“卡是”+卡);
系统输出打印(“高还是低?”);
cardNext=randomNumbers.nextInt(13)+1;
userResponse=scan.next();
userGuessedRight=(userResponse.equalsIgnoreCase(“H”)和&cardNext>=卡)
||(userResponse.equalsIgnoreCase(“L”)和&cardNext卡);
System.out.println(“卡为”+cardNext);
System.out.println(“牌高/牌低,你输了-再玩一次?是/否:”);
userplayreach=scan.next();
}while(userplayreach.equalsIgnoreCase(“Y”);
做{
if(userplayreach.equalsIgnoreCase(“N”))
{
系统输出打印(“谢谢”);
打破
}
}而(!userplayreach.equalsIgnoreCase(“Y”);
scan.close();
}
编辑

以下是输出:

请编辑以设置相关标题。请查看、和部分,了解该网站的工作原理,以及如何提出更好的问题,从而获得更好的答案。嘿,有了这张卡,有时它会接受卡片,即使它是错误的。这取决于您的逻辑,您尝试过这个“=”吗好的,谢谢大家现在都在工作。有一个问题,我可以在某个地方添加一个条件,说明“牌高/低,你输了”?目前它只说牌低,因为condition@the_no_1只需在
System.out.println(“牌越低,您输了-重新玩?Y/N:”);
是添加
if(cardNext
请接受Anarki的回答,因为他回答了你原来的问题。