有人能帮我处理这个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的回答,因为他回答了你原来的问题。