将已随机生成的数字更改为int:Java
所以,我是个新手,请原谅我: 首先是解释: 我正在做的编程任务让我生成跳伞跑,由方块组成。为此,我需要(首先)得到一个介于1和38之间的随机数。我使用了我在网上找到的随机数发生器,取出了我不需要的零件。按原样,代码会返回一系列数字:将已随机生成的数字更改为int:Java,java,random,switch-statement,Java,Random,Switch Statement,所以,我是个新手,请原谅我: 首先是解释: 我正在做的编程任务让我生成跳伞跑,由方块组成。为此,我需要(首先)得到一个介于1和38之间的随机数。我使用了我在网上找到的随机数发生器,取出了我不需要的零件。按原样,代码会返回一系列数字: import java.util.Random; /** Generate random integers in a certain range. */ public final class DiveGen { public static final voi
import java.util.Random;
/** Generate random integers in a certain range. */
public final class DiveGen {
public static final void main(String... aArgs){
log("Generating Runs");
for (int runs=1; runs<=10; runs++) {
int START = 1;
int END = 37;
Random block = new Random();
for (int moves = 1; moves <= 4; ++moves){
showRandomInteger(START, END, block);
}
System.out.printf("\n");
}
}
private static void showRandomInteger(int aStart, int aEnd, Random aRandom){
if (aStart > aEnd) {
throw new IllegalArgumentException("Start cannot exceed End.");
}
//get the range, casting to long to avoid overflow problems
long range = (long)aEnd - (long)aStart + 1;
// compute a fraction of the range, 0 <= frac < range
long fraction = (long)(range * aRandom.nextDouble());
int randomNumber = (int)(fraction + aStart);
System.out.printf(" " + randomNumber);
}
{
System.out.printf("\n");
}
private static void log(String aMessage){
System.out.println(aMessage);
}
}
我想知道的是:我如何把这两个粘在一起?我不想打印出生成的整数,而是希望它打印出演习的名称。到目前为止,我能得到的最好的消息是一条错误消息,上面写着“Missing{or[”,在某一点上(我甚至不记得我是如何得到它的),它告诉我不能使用随机数作为整数
<>我的代码的下一部分也要求不同的数字值不同的点值(1-16值1点,17-38值两个点)。我必须考虑某个东西是否是合法的,但这是一个不同的问题(尽管我必须牢记)。
我很抱歉说得太多:我能做什么?只需创建块字符串作为字符串数组,并将其与数字一起用作索引:
static String blockString[] = { " ", "Unipod", "Stairstep Diamond",
"Murphy Flake", "Yuan", "Meeker", "Open Accordian",.....};
//use as required
System.out.printf(" " + randomNumber + " " + blockString[randomNumber]);
Or
System.out.printf(" " + blockString[randomNumber]);
不能使用
开关
语句为构造函数参数创建字符串
。需要为开关
中的值创建一些容器,然后通过索引号或映射键访问它们。因此“缺少{或[”指示您有语法错误。调试器是否指示代码中出现此问题的位置?只要将这两个函数粘在一起,您就可以创建两个函数-第一个函数生成并返回一个随机整数(在您的范围内)第二个接受int作为参数并返回它所做的:它告诉我缺少的{or[在第16行(开关的大括号所在的位置)。如果我可以这样做,例如,我的变量'block'可以转换成整数,然后可以被我的开关读取,我就可以开始工作了。
static String blockString[] = { " ", "Unipod", "Stairstep Diamond",
"Murphy Flake", "Yuan", "Meeker", "Open Accordian",.....};
//use as required
System.out.printf(" " + randomNumber + " " + blockString[randomNumber]);
Or
System.out.printf(" " + blockString[randomNumber]);