Java 我必须创造一个高-低的游戏。我不知道';我不明白为什么它赢了';行不通 publicstaticvoidmain(字符串[]args){ int money=100,roll1,roll2; int-userBet; 字符c; int-losstwin; 扫描仪输入=新扫描仪(系统输入); 做{ 如果(货币=0 | |货币财阀); } 返回结果; } 专用静态字符getHighLow(扫描仪扫描程序){ 系统输出打印项次(“高、低或七(H/L/S):”; 字符串str=inScanner.next(); 返回str.charAt(0); } 私有静态int getRoll(){ 返回值(int)(Math.random()*6)+1; } 私有静态整数确定规划(字符高低、整数下注、整数滚动){ int结果=0; 如果(高低=‘H’){ 如果(滚动7){ 结果=-1*bet; }否则{ 结果=赌注; } } 如果(高低=='S'){ 如果(滚动==7){ 结果=4*bet; }否则{ 结果=-1*bet; } } 返回结果; }
当用户输入数字0时,我需要程序说“再见”,但我不知道该放在哪里,也不知道如何让它工作。我需要帮助的另一个问题是,如果用户输入的数字大于100或小于1,程序需要说“您的赌注必须在0到100美元之间”。我不知道把它们放在哪里,也不知道如何让它们工作。Java 我必须创造一个高-低的游戏。我不知道';我不明白为什么它赢了';行不通 publicstaticvoidmain(字符串[]args){ int money=100,roll1,roll2; int-userBet; 字符c; int-losstwin; 扫描仪输入=新扫描仪(系统输入); 做{ 如果(货币=0 | |货币财阀); } 返回结果; } 专用静态字符getHighLow(扫描仪扫描程序){ 系统输出打印项次(“高、低或七(H/L/S):”; 字符串str=inScanner.next(); 返回str.charAt(0); } 私有静态int getRoll(){ 返回值(int)(Math.random()*6)+1; } 私有静态整数确定规划(字符高低、整数下注、整数滚动){ int结果=0; 如果(高低=‘H’){ 如果(滚动7){ 结果=-1*bet; }否则{ 结果=赌注; } } 如果(高低=='S'){ 如果(滚动==7){ 结果=4*bet; }否则{ 结果=-1*bet; } } 返回结果; },java,Java,当用户输入数字0时,我需要程序说“再见”,但我不知道该放在哪里,也不知道如何让它工作。我需要帮助的另一个问题是,如果用户输入的数字大于100或小于1,程序需要说“您的赌注必须在0到100美元之间”。我不知道把它们放在哪里,也不知道如何让它们工作。publicstaticvoidmain(String[]args){ public static void main(String[] args) { int money = 100, roll1, roll2; int userBet
publicstaticvoidmain(String[]args){
public static void main(String[] args) {
int money = 100, roll1, roll2;
int userBet;
char c;
int lostwin;
Scanner in = new Scanner(System.in);
do {
if (money == 0 || money < 0)
break;
System.out.println(" You have " + money + " dollars. ");
userBet = getBet(in, money);
if (userBet == 0)
break;
c = getHighLow(in);
roll1 = getRoll();
System.out.println(" Die 1 rolls : " + roll1);
roll2 = getRoll();
System.out.println(" Die 2 rolls : " + roll2);
System.out.println("Total of two dice is: " + (roll1 + roll2));
lostwin = determineWinnings(c, userBet, roll1 + roll2);
if (lostwin < 0)
System.out.println("You lost!");
else
System.out.println("You won " + lostwin + " dollars! ");
money = money + lostwin;
} while (true);
}
private static int getBet(Scanner inScanner, int moneyPot) {
System.out.println("Enter an amount to bet (0 to quit): ");
int result = inScanner.nextInt();
if (result > moneyPot) {
do {
System.out.println("Enter an amount to bet (0 to quit): ");
result = inScanner.nextInt();
} while (result > moneyPot);
}
return result;
}
private static char getHighLow(Scanner inScanner) {
System.out.println("High, low or sevens (H/L/S): ");
String str = inScanner.next();
return str.charAt(0);
}
private static int getRoll() {
return (int) (Math.random() * 6) + 1;
}
private static int determineWinnings(char highLow, int bet, int roll) {
int result = 0;
if (highLow == 'H') {
if (roll < 7) {
result = -1 * bet;
} else {
result = bet;
}
}
if (highLow == 'L') {
if (roll > 7) {
result = -1 * bet;
} else {
result = bet;
}
}
if (highLow == 'S') {
if (roll == 7) {
result = 4 * bet;
} else {
result = -1 * bet;
}
}
return result;
}
国际货币=100;
int-roll1;
int-roll2;
int-userBet;
int-losstwin;
字符c;
扫描仪输入=新扫描仪(系统输入);
做{
如果(货币<1)
打破
System.out.println(“你有“+钱+美元”);
userBet=getBet(in,money);
如果(userBet==0)
打破
c=getHighLow(英寸);
roll1=getRoll();
系统输出打印项次(“模具1卷:+1卷”);
roll2=getRoll();
系统输出打印项次(“模具2辊:+2辊”);
System.out.println(“两个骰子的总数为:”+(roll1+roll2));
lostwin=确定计划(c,用户下注,下注1+下注2);
if(lostwin<0)
System.out.println(“你输了!”);
其他的
System.out.println(“你赢了”+lostwin+dollars!”);
金钱=金钱+损失;
}而(金钱>0);
System.out.println(“再见!”);
}
私有静态int getBet(扫描程序扫描程序,int moneyPot){
int-bet;
做{
System.out.println(“输入下注金额(0退出):”;
bet=inScanner.nextInt();
}而(bet>moneyPot&&bet!=0);
回注;
}
专用静态字符getHighLow(扫描仪扫描程序){
系统输出打印项次(“高、低或七(H/L/S):”;
字符串str=inScanner.next();
返回str.charAt(0);
}
您可以像这样修改getBet
函数以实现您想要的功能
public static void main(String[] args) {
int money = 100;
int roll1;
int roll2;
int userBet;
int lostwin;
char c;
Scanner in = new Scanner(System.in);
do {
if (money < 1)
break;
System.out.println(" You have " + money + " dollars. ");
userBet = getBet(in, money);
if (userBet == 0)
break;
c = getHighLow(in);
roll1 = getRoll();
System.out.println(" Die 1 rolls : " + roll1);
roll2 = getRoll();
System.out.println(" Die 2 rolls : " + roll2);
System.out.println("Total of two dice is: " + (roll1 + roll2));
lostwin = determineWinnings(c, userBet, roll1 + roll2);
if (lostwin < 0)
System.out.println("You lost!");
else
System.out.println("You won " + lostwin + " dollars! ");
money = money + lostwin;
} while (money > 0);
System.out.println("Goodbye!");
}
private static int getBet(Scanner inScanner, int moneyPot) {
int bet;
do {
System.out.println("Enter an amount to bet (0 to quit): ");
bet = inScanner.nextInt();
} while (bet > moneyPot && bet != 0);
return bet;
}
private static char getHighLow(Scanner inScanner) {
System.out.println("High, low or sevens (H/L/S): ");
String str = inScanner.next();
return str.charAt(0);
}
private static int getBet(扫描器inScanner,int moneyPot){
int结果;
System.out.println(“输入下注金额(1-100)(0表示退出):”;
做{
结果=inScanner.nextInt();
如果(结果==0){
System.out.println(“再见”);
返回结果;
}否则如果(结果<0&&result>100){
System.out.println(“请输入介于(1-100)(0表示退出)”之间的金额);
}else if(结果>moneyPot){
System.out.println(“请输入一个小于(1-100)(0表示退出)”的金额);
}否则{
返回结果;
}
}虽然(正确);
}
在Java将goto添加到语言中之前,您可能无法解决此问题;-)如果您的代码更干净,它将真正帮助您。你真的需要修正你的缩进和大括号的位置;这伤了我的眼睛。对不起,哈哈,你们能帮我吗?对于代码,你们给我的会在我的getBet方法中吗?如果是这样的话,我需要在方法中输入整数吗?输入0现在可以工作了,谢谢!当我输入一个负数(-100)时,它认为它实际上是100。它不是在读负号
private static int getBet(Scanner inScanner, int moneyPot) {
int result;
System.out.println("Enter an amount to bet (1-100) (0 to quit): ");
do {
result = inScanner.nextInt();
if (result == 0) {
System.out.println("Good Bye");
return result;
} else if (result < 0 && result > 100) {
System.out.println("Please enter an amount between (1-100) (0 to quit)");
} else if (result > moneyPot) {
System.out.println("Please enter an amount less than your moneyPot between (1-100) (0 to quit)");
} else {
return result;
}
} while (true);
}