public class randomNumbers {
public static void main(String args[]){
int[] nums = new int[20];
Random rn = new Random();
int temp;
for(int i=0;i!=20;i++) {
temp=rn.nextInt(30)+1;
for(int j=0; j<i; j++) {
if(temp==nums[j]) {
j=0;
temp = rn.nextInt(30)+1;
}
}
temp = nums[i];
}
for(int i=0; i!=20; i++) {
System.out.println(nums[i]);
}
}
這是我的程序代碼。但輸出全部爲零。第一個循環應運行20次並從1-30生成一個隨機int,然後嵌套循環應測試並查看它是否在數組中。如果爲true,則應創建一個新的temp,並將j設置爲0以再次檢查。如果沒有,那麼嵌套循環應該完成並且temp設置等於nums [i]。但就像我說的我的輸出全是零。從1-30創建20個不同的數字不重複
您從不向nums數組項目分配任何東西。例如,你在哪裏看到'nums [i] =任何東西'?這不是一個編程問題,而是一個基本的邏輯問題:如果你從不將任何東西放入盒子,盒子仍然是空的,對吧? –
'「...並且temp設置等於nums [i]」',如果它這樣做了,它所做的全部設置temp都等於0.要意識到這不會爲'nums [i]'分配任何東西。爲了給某個變量賦值,該變量必須位於賦值的**左側**,我認爲這是您誤解的主要原因之一。這是一個核心的Java概念,您將從Java課本和學習中學到最好的概念。 –