问题:我已完成此作业的第1-4步。但是,我目前仍然坚持这项任务的第5步和第6步,所以我对如何将我的fizz和buzz String数组合成一个单独的fizzbuzz String数组感到茫然。
TL; DR我不知道如何做第五步和第六步。
分配:
您可以在main方法中执行此操作。这是使用一个叫做的游戏 Fizz-Buzz,一个古老的程序员的游戏。
首先初始化一些变量,以设置随机数的最大值和最小值以及数组的容量。 (20/100)
初始化三个新数组,一个用于随机数列表(作为整数),两个用于名为'fizz'的字符串数组 “嗡嗡”。(20/100)
您还需要一个整数来计算。
编写一个for循环,为数组中的每个位置生成一个随机数。请记住,此范围将设置为 在文件开头初始化的两个变量。有 创建随机数的多种方法,只需找到适用的随机数 您。 (20/100)
使用数组的计数,创建另一个数组,该数组将存储所有的fizzes和buzzes,而不会留下任何额外的空间 数组。 (20/100)
- 醇>
使用a for each循环迭代数组并打印所有的fizzes和buzzes,没有其他输出。 (20/100)
到目前为止我所取得的成就:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import java.util.Random;
/**
*
* @author
*/
public class FizzBuzz {
//2a. Initialize one int array for a list of random numbers.
private static int[] anArray;
private static final int size = 10;
//2b. Initialize two String arrays called 'fizz' and 'buzz.'
public static String[] fizz;
public static String[] buzz;
public static String[] fizzbuzz;
public static Random rand = new Random();
//1. Set the maximum and minimum value of a random number.
private static final int min = 0;
private static final int max = 5;
private static int count = 0;
public static int[] list() {
anArray = new int[size];
//3. Make an integer for counting("counter" in the for loop)
//4. Write a for loop that generates a random number for
// each position in the array.
for(count = 0; count < anArray.length; count++) {
anArray[count] = randomFill();
}
return anArray;
}
public static void print() {
for (int i = 0; i < anArray.length; i++) {
System.out.println(anArray[i] + ": " + fizz[i] + buzz[i]);
}
}
public static int randomFill() {
return rand.nextInt((max - min) + 1) + min;
}
public static String[] getF() {
fizz = new String[size];
int x = 0;
int counter;
for(counter = 0; counter < fizz.length; counter++) {
if(anArray[counter] % 3 == 0) {
fizz[counter] = "fizz";
} else {
fizz[counter] = "";
}
}
return fizz;
}
public static String[] getB() {
buzz = new String[size];
int x = 0;
int counter;
for(counter = 0; counter < buzz.length; counter++) {
if(anArray[counter] % 5 == 0) {
buzz[counter] = "buzz";
} else {
buzz[counter] = "";
}
}
return buzz;
}
public static String[] getFB() {
fizzbuzz = new String[size];
return fizzbuzz;
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
list();
getF();
getB();
print();
}
}
答案 0 :(得分:0)
首先:
Random
如何运作 Random
的实施工作原因很简单:
如果调用default-constructor,PRNG的种子将是当前时间,因此您很可能使用相同的种子启动多个PRNG,从而多次接收相同的随机值。请改用一个Random
- 实例:
private Random rnd = new Random();
public static int randomFill() {
return rnd.nextInt((max - min) + 1) + min;
}
This应该有助于更好地理解这个问题。
尝试尽可能贴近给定的任务。例如。问题明确指出您应该使用变量来指定数组的长度,同时您使用固定的魔术数字。该任务明确声明使用两个数组fizz
和buzz
,您使用一个名为fizzbuzz
的数组。
在GetFizzBuff
内,您可能需要x = 2;
而不是x = x + 2;
。除此之外这部分还可以。
如上所述:尽量坚持给定的任务。它明确声明只输出嘶嘶声和嗡嗡声,而不是任何整数。或者至少尝试在同一行中打印一个值和相应的fizzes和buzz,以产生可读的输出。