//導(dǎo)入java.util.Arrays;
import?java.util.Arrays;
public?class?HelloWorld?{
????public?static?void?main(String[]?args)?{
????????
?????????//?創(chuàng)建對(duì)象,對(duì)象名為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)隨機(jī)數(shù)為數(shù)組中的每個(gè)元素賦值
?*?定義一個(gè)帶參帶返回值的方法,通過參數(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)生一個(gè)100以內(nèi)的隨機(jī)數(shù),并賦值給數(shù)組的每個(gè)成員??????
????????
}
return?nums;?//?返回賦值后的數(shù)組
}
}
2015-12-09
樓主的getArray函數(shù)里的循環(huán)有問題,int i:nums 的時(shí)候,它相當(dāng)于new出了一個(gè)i,然后把nums的對(duì)應(yīng)的值給i,但是你之后讓i=(int)(Math.random()*100);,這個(gè)結(jié)束后,i雖然變了,但是你并沒有把它設(shè)回到nums數(shù)組里,也就是說,i并不是nums的地址,改變了i并不能改變nums中對(duì)應(yīng)的值,所以,建議樓主如下寫法:
這樣,將nums值設(shè)回去,就有隨機(jī)的值了
2015-12-09
額,謝謝啊,我剛學(xué)完C,感覺Java和C中的一些概念還是區(qū)別挺大的。你的意思是,new出來的i并不等于nums[x],只是nums[x]把,它的值傳遞給了i,而改變i的值并不可以改變nums[x],因?yàn)樗麄冊(cè)趦?nèi)存中的地址不一樣。這是不是和C中的傳值引用和按地址引用可以類比呢?