作者jtmh (Believing is seeing! ^^)
看板java
标题Re: [问题] 希望有人可以帮助我...
时间Sat Sep 2 13:51:20 2006
※ 引述《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