我正在努力工作這個邏輯,但似乎無法實現。我會很感激這方面的任何方向。我想要一種方法來生成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