java - 如何根据java程序中的用户输入继续循环
问题描述
我有一个彩票程序,它将运行投注并随机生成数字。当用户的总赢额达到 5000 美元时,该用户可以选择兑现 5000 美元并使用剩余余额继续循环。如果选择不兑现,用户也将能够结束循环。如何根据用户输入继续循环?如果用户写的是,循环将继续,但我不知道该怎么做。有人可以帮忙吗?如果应该继续循环,由于提款而从用户的总奖金中扣除 5000 美元,剩余的余额将用于玩游戏。
我曾尝试将用户输入的 if 语句放在主循环中的多个位置,但用户预算不断增加,它并没有减去 5000 美元。
java.util.Scanner
while (budget > 0) {
lottery = (int) (Math.random() * 100);
guess = (int) (Math.random() * 100);
budget -= 1; // budget = budget-1;
// Get digits from lottery
int lotteryDigit1 = lottery / 10;
int lotteryDigit2 = lottery % 10;
// Get digits from guess
int guessDigit1 = guess / 10;
int guessDigit2 = guess % 10;
System.out.println("The lottery number is " + lottery);
System.out.println("The computer picked number is " + guess);
// Check the guess
if (guess == lottery) {
System.out.println("Exact match: you win $10,000");
totalWin += 1000;
} else if (guessDigit2 == lotteryDigit1 && guessDigit1 == lotteryDigit2) {
System.out.println("Match all digits: you win $3,000");
totalWin += 300;
} else if (guessDigit1 == lotteryDigit1 || guessDigit1 == lotteryDigit2 || guessDigit2 == lotteryDigit1
|| guessDigit2 == lotteryDigit2) {
System.out.println("Match one digit: you win $1,000");
totalWin += 100;
} else
System.out.println("Sorry, no match");
budget += totalWin;
totalWin=0;
if (budget > initBudget)
if ((budget-initBudget) >= 5000) {
System.out.println("You have reached the goal of 5000, we can go home!");
System.out.println("Enter 1 if you would like to cash out and use remaining balance to play and 0 if you would like to stop");
int decison = input.nextInt();
if (decison==1){budget=budget-5000;
System.out.println("Budget After play " + budget);
continue;
}break;
}
System.out.println("Budget After play " + budget);
}
所以在我的代码中,我有循环
System.out.println("Enter 1 if you would like to cash out and use remaining balance to play and 0 if you would like to stop");
int decison = input.nextInt();
if (decison==1){budget=budget-5000;
System.out.println("Budget After play " + budget);
continue;
}break;
}
这个循环应该接收用户输入,然后从总赢额中减去 5000 并使用剩余的预算继续玩.. 但它只会增加。如果我有-5000,不明白为什么它会增加。
(如果可能,请帮我将答案改为是/否,而不是输入 1)
解决方案
Erçin Akçay 解释了如何将输入从 int 更改为 String。
我查看了您的代码并使用它创建了一个可运行的 main 方法,它可以按您的预期工作。也许它需要从初始预算中获得 5k 的事实令人困惑?
if ((budget - initBudget) >= 5000)
这是我用来检查您的代码是否有帮助的整个课程:
import java.util.Scanner;
public class Test {
private static int budget;
private static int lottery;
private static int guess;
private static int totalWin;
private static int initBudget = 4500;
public static void main(String[] args) throws InterruptedException {
Scanner input = new Scanner(System.in);
budget = initBudget;
while (budget > 0) {
lottery = (int) (Math.random() * 100);
guess = (int) (Math.random() * 100);
budget -= 1; // budget = budget-1;
// Get digits from lottery
int lotteryDigit1 = lottery / 10;
int lotteryDigit2 = lottery % 10;
// Get digits from guess
int guessDigit1 = guess / 10;
int guessDigit2 = guess % 10;
System.out.println("The lottery number is " + lottery);
System.out.println("The computer picked number is " + guess);
// Check the guess
if (guess == lottery) {
System.out.println("Exact match: you win $10,000");
totalWin += 1000;
} else if (guessDigit2 == lotteryDigit1 && guessDigit1 == lotteryDigit2) {
System.out.println("Match all digits: you win $3,000");
totalWin += 300;
} else if (guessDigit1 == lotteryDigit1 || guessDigit1 == lotteryDigit2 || guessDigit2 == lotteryDigit1
|| guessDigit2 == lotteryDigit2) {
System.out.println("Match one digit: you win $1,000");
totalWin += 100;
} else {
System.out.println("Sorry, no match");
}
budget += totalWin;
totalWin = 0;
if (budget > initBudget) {
if ((budget - initBudget) >= 5000) {
System.out.println("You have reached the goal of 5000, we can go home!");
System.out.println(
"Enter 1 if you would like to cash out and use remaining balance to play and 0 if you "
+ "would like to stop");
int decison = input.nextInt();
if (decison == 1) {
budget = budget - 5000;
System.out.println("Budget After play " + budget);
continue;
}
break;
}
}
System.out.println("Budget After play " + budget);
}
}
}
推荐阅读
- javascript - 从 react-bootstrap 导入任何组件都会引发错误
- javascript - Javascript cookie 未过期
- typescript - React Native Typescript 模板不应用更改
- python - 'Str' 对象不可调用,尽管我将其转换为 'int'
- firebase - Firebase 数据库节点属性值在 Chrome、Edge 中被截断
- javascript - 发布 Javascript 库供客户使用
- javascript - 开玩笑:如何计算通过“call”或“apply”调用的模拟方法的调用?
- javascript - 如何从我的数组中删除所有“地图”属性
- python - 如何在python中替换列表中的特定字符串
- c# - 如何将相同的发票编号数据获取到 datagridview 列