java - 遍历数组列表
问题描述
我正在创建一个彩票游戏,它检查用户是否从随机彩票号码中猜出 2、3、4 或 5 个号码,然后打印一条消息。彩票号码从 1 到 100 打印 10 次,用户猜 5 个号码。我已经尝试过for
循环和 if 语句,但它没有打印出正确的消息。不要介意变量,因为我只是在测试看看什么是有效的。我的问题是,如何检查用户是否正确猜到了 2 、 3 、 4 或 5 个数字?这是我的代码。
// first way to check if user guessed correctly
int x,y;
for ( int i = 4; i< numbers.length; i++) {
x = numbers[i];
for (int j = 0; j < lottery.length; j++) {
y = lottery[j];
if (x == y) {
System.out.println("You guessed 5 numbers");
}
for ( i = 3; i< numbers.length; i++ ) {
x = numbers[i];
if ( x == y) {
System.out.println("You guessed 4 numbers");
}
for ( i = 2; i < numbers.length; i++) {
x = numbers[i];
if ( x == y) {
System.out.println("You guessed 3 numbers");
}
for ( i = 1; i < numbers.length; i++) {
x = numbers[i];
if ( x == y) {
System.out.println("You guessed 2 numbers");
}
}
}
}
}
}
解决方案
public static void main(String[] args) {
int count = 0;
int[] lottery = new int[5];
int[] input = new int[5];
Scanner scanner = new Scanner(System.in);
System.out.println("Enter 5 number: ");
for(int i = 0; i < 5; i++) {
input[i] = scanner.nextInt();
}
Random r = new Random();
for (int i = 0; i < lottery.length; i++) {
int random = r.nextInt(10); // Upper bound of random generator = 10.
lottery[i] = random;
System.out.print(lottery[i]);
}
for (int i = 0; i < lottery.length; i++) {
for (int j = 0; j < input.length; j++) {
if (lottery[i] == input[j]) {
count++;
}
}
}
if (count == 0) {
System.out.println("\nToo bad, you have 0 correct guess. Try again!");
} else if (count == 1) {
System.out.println("\n1 number guessed correctly! You won $1000!");
} else if (count == 2) {
System.out.println("\n2 number guessed correctly! You won $6000!");
} else {
// Add condition
}
}
这将接收 5 个随机数并将其存储在lottery
数组中。程序将提示用户输入 5 个输入数字,将其存储并与 中的每个数字input
进行比较。如果两个数字相等,则递增。示例运行:lottery[i]
input
count
Enter 5 number:
1 2 3 4 5
7 2 5 9 1
2 number guessed correctly! You won $6000!
请注意,如果随机数生成器创建了两个或更多重复数字,则count
意志也会增加。这是一个边缘案例,但我认为如果你想要改进,你可以用谷歌搜索它。
实现这个使用ArrayList
也更简单,因为ArrayList
有方法contains()
可以检查它是否有这样的元素。我们可以if-else
为它使用一个简单的循环。我假设 OP 的作业有使用限制,Array
因此不使用这种方法。
推荐阅读
- ios - 如何将 InputAccessoryView 中的 TextField 设置为第一响应者 [Swift]
- python - Chrome上的“内存不足” - selenium webdriver
- c# - 使用 .NET 5.0 的 ASP.NET Core Web 应用程序:从视图传递到控制器时,IFormFile 始终为空
- wordpress - 从 GitLab 存储库部署原始源代码
- tensorflow - RuntimeError: Unable to create link (name already exists) 使用 Google Colab 保存第二个模型时
- javascript - 未处理的拒绝 (TypeError):error.response 未定义
- memory - 为什么结构在创建时共享相同的地址,而在删除时与创建的地址不同
- powershell - 如何不显示选定的列?
- reactjs - 将两个json数组合并为一个json数组,其中数据将在react js中完全合并为一个Json
- excel - Excel 表之间的组合的 Power Query 是什么?