Java 随机生成器始终生成数字0
我想知道为什么生成的第一个数字总是“0” 代码如下:Java 随机生成器始终生成数字0,java,arrays,random,Java,Arrays,Random,我想知道为什么生成的第一个数字总是“0” 代码如下: public static void main(String[] args) { boolean[] pack = new boolean[52]; int[] cards = new int[5]; for (int i = 0; i < pack.length - 1; i++) { System.out.print(pack[i] + " | "); }
public static void main(String[] args) {
boolean[] pack = new boolean[52];
int[] cards = new int[5];
for (int i = 0; i < pack.length - 1; i++) {
System.out.print(pack[i] + " | ");
}
System.out.println();
Random give = new Random();
for (int i = 0; i < cards.length; i++) {
while (pack[cards[i]])
cards[i] = give.nextInt(5);
pack[cards[i]] = true;
System.out.println(cards[i]);
}
for (int i = 0; i < pack.length - 1; i++) {
System.out.print(pack[i] + " | ");
}
}
publicstaticvoidmain(字符串[]args){
布尔[]包=新布尔[52];
int[]卡=新int[5];
对于(int i=0;i
因为pack(cards[i])
在第一次迭代时总是错误的。解决方案可以是实现do while
而不是while
选中此项:
主要内容:
import java.util.Random;
公共类硬件{
公共静态void main(字符串[]args){
布尔[]包=新布尔[52];
int[]卡=新int[5];
对于(int i=0;i
输出:
假假2424244)假242424考生考生考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考考假|假|假|假|假|假|假|假|假|假|假|假|假|
四,
三,
0
一,
二,
真实2424244)真实2424244)真实24244)真实24244)真实2424244)真实24244)真实2424244)真实24244)真实244)真实244)真实244)真实244)真实244)真实24244)真实24244)真实244)真实242424244)假244)假244)假2424244)假24244)假假244)假假24244)假假244)假2424244)假假244)假假244)假假244)假244)假244)假244)假244)假假244)假244)假242424假|假|假|假|假|假|假|假|假|假|假|假|假|
javascript!=另外,请格式化你的代码-现在真的很难阅读。(如果你能让它成为一个完整的程序,这也会有帮助。你离得很近,有一个
main
方法-但仅仅包括类声明和导入将帮助我们复制、粘贴、编译和运行。)这give.nextInt(5)
,你的意思是give.nextInt(pack.length)
?非常感谢你的帮助,我一定会用你给我的解决方案来检查代码
import java.util.Random;
public class hw {
public static void main(String[] args) {
boolean[] pack = new boolean[52];
int[] cards = new int[5];
for (int i = 0; i < pack.length - 1; i++)
{
System.out.print(pack[i] + " | ");
}
System.out.println();
Random give = new Random();
for (int i = 0; i < cards.length; i++) {
do
{
cards[i] = give.nextInt(5);
}
while ( pack[cards[i]] );
pack[cards[i]] = true;
System.out.println(cards[i]);
}
for (int i = 0; i < pack.length - 1; i++)
{
System.out.print(pack[i] + " | ");
}
}
}