//導入java.util.Arrays;
import?java.util.Arrays;
public?class?HelloWorld?{
????public?static?void?main(String[]?args)?{
????????
?????????//?創(chuàng)建對象,對象名為hello
???? HelloWorld?hello?=?new?HelloWorld();
????????
????????//?調(diào)用方法并將返回值保存在變量中
int[]?nums?=?hello.getArray(8);
????????
????????//?將數(shù)組轉(zhuǎn)換為字符串并輸出
System.out.println(Arrays.toString(nums));?
}
/*
?*?功能:創(chuàng)建指定長度的int型數(shù)組,并生成100以內(nèi)隨機數(shù)為數(shù)組中的每個元素賦值
?*?定義一個帶參帶返回值的方法,通過參數(shù)傳入數(shù)組的長度,返回賦值后的數(shù)組
?*/
public?int[]?getArray(int?length)?{
????????//?定義指定長度的整型數(shù)組
int[]?nums?=?new?int[length];
????????//?循環(huán)遍歷數(shù)組賦值
for?(????????int?i:?nums???)?{
????????????i=(int)(Math.random()*100);
//?產(chǎn)生一個100以內(nèi)的隨機數(shù),并賦值給數(shù)組的每個成員??????
????????
}
return?nums;?//?返回賦值后的數(shù)組
}
}
2015-12-09
樓主的getArray函數(shù)里的循環(huán)有問題,int i:nums 的時候,它相當于new出了一個i,然后把nums的對應的值給i,但是你之后讓i=(int)(Math.random()*100);,這個結(jié)束后,i雖然變了,但是你并沒有把它設(shè)回到nums數(shù)組里,也就是說,i并不是nums的地址,改變了i并不能改變nums中對應的值,所以,建議樓主如下寫法:
這樣,將nums值設(shè)回去,就有隨機的值了
2015-12-09
額,謝謝啊,我剛學完C,感覺Java和C中的一些概念還是區(qū)別挺大的。你的意思是,new出來的i并不等于nums[x],只是nums[x]把,它的值傳遞給了i,而改變i的值并不可以改變nums[x],因為他們在內(nèi)存中的地址不一樣。這是不是和C中的傳值引用和按地址引用可以類比呢?