Re: [問題] 希望有人可以幫助我...
※ 引述《Kenny042183 (加油啊...)》之銘言:
: 我在主程式呼叫一個方法
: 方法是放在迴圈裡面執行
: 就是
: for (int a = z1.length ; a > 0 ; a--){
: level(z1 , sfinal , z1[a] , pa , 1 , LBTOTALX[0] , LBTOTALX[1] , a);
: }
: level是方法,裡面都是我的參數...
: 然後在這個方法裡面,他經過判斷有可能會繼續在執行一次level,
: 而這一次的呼叫方法同樣也會是放在迴圈裡面
: 好像是叫遞迴吧!!
: 現在我的問題是,當我的判斷是不需要再一次迴圈去執行方法的時候
: 也就是回到他所在的迴圈的時候,再執行下一次的方法
: 就比方說現在a = 5,他經過判斷然後-1變成a = 4,繼續執行回圈內的方法
: 但是我不要他繼續執行下一次的迴圈
: 就是要讓他a < 0,我有直接在我判斷後讓a = -1,並且顯示出a值
: 確實變成-1了,但是他回到原本執行的迴圈的時候
: 卻又變成正數了,也就是他原本下一次應該a是多少,他就變成多少了
: 並沒有被我改變到
: 不曉得是甚麼問題.....已經想了一天了!!
: 希望有人可以瞭解我的意思!!謝謝各位高手!!
聽起來似乎是傳值呼叫的問題,
你的 a 是 int 型態,
所以傳進 level 中的只是 a 的一份 copy,
不管你在 level 裡對 a 怎麼修改,
改到的都是那一份 copy,
而不是 a 本身,
因此離開 level 回到迴圈後 a 的值還是沒變。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.175.161.103
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 6 篇):