Java 如何使用新值退出while循环?
对于我的一个作业,我们应该首先生成一个介于1和13之间的随机数,然后我们询问用户是否希望绘制另一个数字。如果他们这样做了,我们应该在1-13范围内添加另一个随机数,而不超过21。我一直坚持的是,在添加1个新的随机数并询问用户是否要添加另一个随机数后,如何退出while循环。我试着用break;这就是我到目前为止所做的:Java 如何使用新值退出while循环?,java,while-loop,do-while,Java,While Loop,Do While,对于我的一个作业,我们应该首先生成一个介于1和13之间的随机数,然后我们询问用户是否希望绘制另一个数字。如果他们这样做了,我们应该在1-13范围内添加另一个随机数,而不超过21。我一直坚持的是,在添加1个新的随机数并询问用户是否要添加另一个随机数后,如何退出while循环。我试着用break;这就是我到目前为止所做的: int randCard = 1 + (int) (Math.random() * ((13 - 1) + 1)); int playerHand = 0 + randC
int randCard = 1 + (int) (Math.random() * ((13 - 1) + 1));
int playerHand = 0 + randCard;
System.out.println("START GAME #" + gameNum);
System.out.println("Your card is a " + randCard + "!");
System.out.println("Your hand is: " + playerHand);
System.out.println("\n1. Get another card");
System.out.println("2. Hold hand");
System.out.println("3. Print statistics");
System.out.println("4. Exit");
System.out.print("\nChoose an Option: ");
int selectedOption = menuOptions.nextInt();
if (selectedOption == 1) {
do {
int newRandCard = 1 + (int) (Math.random() * ((13 - 1) + 1));
System.out.println("Your card is a " + newRandCard + "!");
System.out.println("Your hand is: " + (playerHand + newRandCard));
playerHand = (playerHand + newRandCard);
break;
}
while (playerHand <= 21) ;
////////IDEALLY IT SHOULD PRINT LIKE THIS//////
Your card is a 4!
Your hand is: 4
1. Get another card
2. Hold hand
3. Print statistics
4. Exit
Choose an option: 1
Your card is a 9!
Your hand is: 13
1. Get another card
2. Hold hand
3. Print statistics
4. Exit
intrandcard=1+(int)(Math.random()*((13-1)+1));
int playerHand=0+randCard;
System.out.println(“开始游戏”#“+gameNum);
System.out.println(“您的卡是“+randCard+”!”);
System.out.println(“你的手是:“+playerHand”);
System.out.println(“\n1.获取另一张卡”);
System.out.println(“2.牵手”);
System.out.println(“3.打印统计数据”);
System.out.println(“4.Exit”);
System.out.print(“\n选择一个选项:”);
int selectedOption=menuOptions.nextInt();
如果(选择选项==1){
做{
int newRandCard=1+(int)(Math.random()*((13-1)+1));
System.out.println(“您的卡是“+newRandCard+”!”);
System.out.println(“你的手是:”+(playerHand+newRandCard));
playerHand=(playerHand+newRandCard);
打破
}
while(playerHand如果只需要添加一次随机数,请再次为用户提供菜单选项
System.out.println(“开始游戏”+gameNum);
int randCard=1+(int)(Math.random()*((13-1)+1));
System.out.println(“您的卡是“+randCard+”!”);
int playerHand=0+randCard;
System.out.println(“你的手是:“+playerHand”);
做{
System.out.println(“1.获取另一张卡”);
System.out.println(“2.牵手”);
System.out.println(“3.打印统计数据”);
System.out.println(“4.Exit”);
System.out.println(“选择一个选项:”);
int selectedOption=menuOptions.nextInt();
如果(选择选项==1){
randCard=1+(int)(Math.random()*((13-1)+1));
System.out.println(“您的卡是“+newRandCard+”!”);
System.out.println(“你的手是:”+(playerHand+newRandCard));
playerHand=(playerHand+randCard);
}
…要选择的其他选项
}while(playerHand如果只需要添加一次随机数,请再次为用户提供菜单选项
System.out.println(“开始游戏”+gameNum);
int randCard=1+(int)(Math.random()*((13-1)+1));
System.out.println(“您的卡是“+randCard+”!”);
int playerHand=0+randCard;
System.out.println(“你的手是:“+playerHand”);
做{
System.out.println(“1.获取另一张卡”);
System.out.println(“2.牵手”);
System.out.println(“3.打印统计数据”);
System.out.println(“4.Exit”);
System.out.println(“选择一个选项:”);
int selectedOption=menuOptions.nextInt();
如果(选择选项==1){
randCard=1+(int)(Math.random()*((13-1)+1));
System.out.println(“您的卡是“+newRandCard+”!”);
System.out.println(“你的手是:”+(playerHand+newRandCard));
playerHand=(playerHand+randCard);
}
…要选择的其他选项
}while(playerHand您可以将代码更改为以下循环,直到用户做出除1以外的选择
if (selectedOption == 1) {
do {
...
} while (playerHand <= 21 && selectedOption == 1);
if(selectedOption==1){
做{
...
}while(playerHand您可以将代码更改为以下循环,直到用户做出除1以外的选择
if (selectedOption == 1) {
do {
...
} while (playerHand <= 21 && selectedOption == 1);
if(selectedOption==1){
做{
...
}while(playerHand如果你只想抽一张牌,那么不要使用边做边做的循环。只使用边做边做的循环(没有休息)
如果你想在用户告诉你之前抽牌,那么创建一个布尔变量,并将其用作“边抽边抽”循环的条件,并在每个循环结束时读取该变量。如果你只想抽一张牌,那么不要使用边抽边抽循环。只需使用边抽边抽内的内容(无中断)
如果你想在用户告诉你之前抽牌,那么就创建一个布尔变量,并将其作为do while循环的条件,并在每个循环结束时读取它。将询问放入循环中。逻辑是->while,玩家选择牌(是继续,无中断),随机牌,将新牌添加到牌堆中,如果牌堆超过21个中断。将询问放入循环中。逻辑为->同时,玩家选择牌(是继续,不中断),随机卡,如果堆栈超过21个断点,则向堆栈添加新卡。如果我不使用断点,程序会不断添加随机数,我只需要添加一次随机数,然后再次向用户提供菜单选项。我将帖子编辑为理想的打印样式。您可以在selectedOption==条件上放置断点;
然后我在selectedOption==4内尝试了break;方法,但它保持在循环内。如果它不在循环内,它会去哪里?它会从它所在的循环中中断出来…因此在我共享的代码中,它会退出do..while循环。如果我不使用break,程序会一直添加一个随机数,我只需要它再添加一个随机数e、 然后再次给用户菜单选项。我将帖子编辑成理想的打印格式。你可以在selectedOption==condition
上设置一个break;
,然后我在selectedOption==4中尝试了break;方法,但它保持在循环中。如果break不在循环中,它将跳出循环它在…中,所以在我共享的代码中,它将退出do..while循环。嘿,我刚刚尝试了这个,它仍然留在循环中。知道为什么吗?嘿,我刚刚尝试了这个,它仍然留在循环中。知道为什么吗?