[問題] java程式邏輯問題

作者: johnny10229 (johnny)   2016-02-02 16:39:04
大家好
這邊有個程式問題想要請教,弄了好久還是不知道問題在哪
以下是程式碼
public void copyGh(int k, int kk) {
int i;
for (i = 0; i < cityNum; i++) {
newPopulation[k][i] =oldPopulation[kk][i]; }
public void select() {
int k, i, selectId;
float ran1;
for (k = 1; k < scale; k++) {
ran1 = (float) (random.nextInt(65535) % 1000 / 1000.0)
;
for (i = 0; i < scale; i++) {
if (ran1 < Pi[i])
break; }
selectId = i;
copyGh(k, selectId); } }
參數scale為100
執行這部分時會出現error
說明kk超過100,但i最大為99
那selectId最大也是99
為何會出現100?
手機排版有點亂,抱歉
作者: k47100014 (MIT_No.14)   2016-02-02 19:05:00
因為你把i宣告在外面,i跑完for迴圈沒break最後的值是100抱歉上面有點說錯 應該是說 若沒有break情況發生 i最後跑到100跳出迴圈 這時你指派給selectId當然會是100
作者: virnux (真心離傷心最近)   2016-02-11 19:39:00
變數沒設定好 selectId好像是多餘的

Links booklink

Contact Us: admin [ a t ] ucptt.com