gpt4 book ai didi

java - 我的java代码需要一点帮助

转载 作者:行者123 更新时间:2023-12-01 13:16:16 27 4
gpt4 key购买 nike

我正在使用 Savitch 的 Absolute Java 自学 Java。我正在从事编程项目:我被要求做的是编写一个掷骰子游戏的代码。我的代码整体工作正常,但其中一部分出现无限循环。有人能指出我做错了什么吗?这就是我被要求做的事情:如果在出卷上滚动了 4、5、6、8、9 或 10,则该数字成为“重点”。玩家不断掷骰子,直到 7 或点数为卷起来。如果先掷出分数,则玩家赢得赌注。如果先掷出 7,那么玩家就输了。

这是我的代码:

import java.util.Random;
public class ProgProject2
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
Random randomGeneratorDice1 = new Random();
Random randomGeneratorDice2 = new Random();
//int counter = 1;
int dice1, dice2, sum, winNumber = 0, lossNumber = 0;
for (int counter = 1; counter <= 3; counter++)
{
System.out.println("Roll number " + counter + " of the dice: ");
dice1 = randomGeneratorDice1.nextInt(6) + 1;
dice2 = randomGeneratorDice2.nextInt(6) + 1;
sum = dice1 + dice2;
System.out.println("Dice1 value is: " + dice1 + " and dice2 value is: "
+ dice2);
System.out.println("The output of the dice roll is: " + sum);
if ((sum == 7) || (sum == 11))
{
System.out.println("You win!!");
winNumber++;
} // end if
else if ((sum == 2) || (sum == 3) || (sum == 12))
{
System.out.println("You lose!!");
lossNumber++;
} // end else if
**else
{
System.out.println("The point!!");
//System.out.println("The sum is: " + sum);
//int point = sum;
int sumElse;
do
{
dice1 = randomGeneratorDice1.nextInt(6) + 1;
dice2 = randomGeneratorDice2.nextInt(6) + 1;
sumElse = dice1 + dice2;
if (sumElse == sum)
{
System.out.println("You win!!");
winNumber++;
} // end inner if
else if (sumElse == 7)
{
System.out.println("You lose!!");
lossNumber++;
} // end inner else

} while ((sumElse != sum) || (sumElse != 7));
} // end else**

} // end for loop

System.out.println("Your total wins are: " + winNumber + " and your total "
+ "losses are: " + lossNumber);
double winProbability = (double) winNumber / (winNumber + lossNumber);
System.out.println("Your winning probability is: " + winProbability);

} // end main

} // end ProgProject2

最佳答案

换行

} while ((sumElse != sum) || (sumElse != 7));

} while ((sumElse != sum) && (sumElse != 7));
<小时/>

或者您可以有一个无限循环,但在条件体中添加 break 语句(以退出循环):

do {
dice1 = randomGeneratorDice1.nextInt(6) + 1;
dice2 = randomGeneratorDice2.nextInt(6) + 1;
sumElse = dice1 + dice2;
if (sumElse == sum) {
System.out.println("You win!!");
winNumber++;
break;
} // end inner if
else if (sumElse == 7) {
System.out.println("You lose!!");
lossNumber++;
break;
} // end inner else

} while (true);

关于java - 我的java代码需要一点帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22441636/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com