所以这是我现在的代码。
public static void main(String[] args) {
Scanner keyboard = new Scanner (System.in);
int set[] = new int[5];
set[0] = (int)(Math.random()*6)+1;
set[1] = (int)(Math.random()*6)+1;
set[2] = (int)(Math.random()*6)+1;
set[3] = (int)(Math.random()*6)+1;
set[4] = (int)(Math.random()*6)+1;
System.out.println("Your current dice: " + set[0] + " " + set[1] + " " + set[2] + " " + set[3] + " " +set[4] );
System.out.println("Select a die to re-roll (-1 to keep remaining dice):");
int ask = keyboard.nextInt();
此后,如果用户键入1,则set[1]
应更改为零,因此它变为x0xxx
,如果用户还希望更改第3个数字,那么它应为{ {1}}。
顺便说一句,x0x0x
只是生成的随机数。
我该如何继续这样做?它必须总共最多5次。
答案 0 :(得分:2)
以下是完成您想要/需要的基本步骤。
Scanner
或其他内容)。int x
。set[x] = ...
的内容(将...
改为适当的值)。答案 1 :(得分:0)
你多次做一件事的方式是循环。关键是要学习使用哪种循环。
对于应用于每个元素的内容,请使用for-each循环。对于需要完成的事情,直到某些条件使用while循环。对于在某些条件变为false之前需要完成的事情,请使用do-until循环。
你做的事情是一样的,进入循环块。你正在“工作”的东西发生了变化,这是一个循环在每次“遍历”循环块时设置的变量。
在你的情况下
for (Die die : dice) {
die.roll();
}
类Die看起来像
public class Die {
private int value;
public Die() {
roll();
}
public void roll() {
value = (int)(Math.random()*6)+1;
}
public int getValue() {
return value;
}
}
然后,因为你需要“订单”(第一,第二,第三等......)使用一个可以包含对象的数据结构(比如你的死)
List<Die> dice = new ArrayList<>();
阵列很好,你需要知道如何使用它们;但是,通过不使用它们,有更好的方法来解决大多数问题。
当你真的无法使用它们时,使用for循环来遍历每个数组索引。