Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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 如何使用新值退出while循环?_Java_While Loop_Do While - Fatal编程技术网

Java 如何使用新值退出while循环?

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

对于我的一个作业,我们应该首先生成一个介于1和13之间的随机数,然后我们询问用户是否希望绘制另一个数字。如果他们这样做了,我们应该在1-13范围内添加另一个随机数,而不超过21。我一直坚持的是,在添加1个新的随机数并询问用户是否要添加另一个随机数后,如何退出while循环。我试着用break;这就是我到目前为止所做的:

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循环。嘿,我刚刚尝试了这个,它仍然留在循环中。知道为什么吗?嘿,我刚刚尝试了这个,它仍然留在循环中。知道为什么吗?