我正在努力工作这个逻辑,但似乎无法实现。我会很感激这方面的任何方向。我想要一种方法来生成1到10之间的随机数 ,然后返回一个本地String []数组“numArr”的四个元素的数组,该数组是本方法的本地成员。因此,可以说,如果 产生的随机数是“8”,我将不得不for循环开始的“8”反向并返回:正向循环或反向循环取决于生成的随机数?
“八” “七” “六个一” “十二五”
我有一个设置为4的局部变量“len”,“len”变量决定了需要返回多少个“numArr”元素。我确保生成的随机数 小于(numArr.length - len),因此如果生成随机数为8,我的逻辑将确定并使用从8开始的反向循环。因为如果调用 转发循环,它只会执行两次,因为“numArr”只有10个元素。
我正在反向for循环:
,如果目前的随机数>(numArr.length - LEN)。所以如果随机数是7,8,9或10,逻辑将循环运行。
我目前没有返回任何东西,我只是想确保在我返回任何东西之前逻辑功能完全正常。
public static void geNums(){
//LENGTH IS SET TO 4
int len = 4;
//COUNTER
int counter = 0;
//LOCAL ARRAY WITH JUS 10 ELEMENTS
String[] numArr = {"one","two","three","four","five","six","seven","eight","nine","ten"};
//RANDOM NUMBER IS GENERATED BETWEEN 1 AND 10
Random randNum = new Random();
int curRandom = randNum.nextInt(9) + 0; //0 TO 9 || 1 TO 10
//CHOICE ARRAY
String[] choices = new String[ len ]; //LENGTH IS SET TO 4
//DISPLAY CURRENTLY GENERATED RANDOM NUMBER
System.out.println("Current Random Number: " + curRandom);
System.out.println("-------------------------");
if(curRandom > (numArr.length - len)){
//REVERSE LOOP
for(int i = curRandom; i >= len; i--){
//BREAK IF COUNTER IS MORE THAN LEN
if(counter > len){
--counter;
break;
}
choices[i] = numArr[i]; //POPULATE CHOICE ARRAY
++counter;
}
else{
//FORWARD LOOP
for(int i = curRandom; i < len; i++){
choices[i] = numArr[i]; //POPULATE CHOICE ARRAY
}
}
//DISPLAY CHOICE ARRAY ELEMENTS FOR DUBUGGING
for(int j = 0; j < choices.length; j++){
System.out.println(choices[j]);
}
}//METHOD