这是一个值的传递问题,具体看代码?

public static void toText(int[] sz) {//传输进来的是长度为4的一位数组

        int gps = -1;//gps位置锁

        int connect = 0;

        for (int cycle = 1; cycle <= 3; cycle++) {

            boolean gps_2 = true;//当前锁

            for (i = cycle - 1; i >= 0; i--) {// cycle=2,i=1,j=1

                boo = false;

                j = i + 1;

                if (sz[j] == 0) {

                    break;//当前操作的数字为0,退出内循环

                } else if (sz[i] == 0) {

                    Move(sz[i], sz[j]);

                } else if (sz[i] == sz[j] && i > gps && gps_2 == true) {

                    Add(sz[i], sz[j]);

                    gps_2 = false;

 

                } else {

                    break;// 当当前位置的数字,与他前面位置的数字不同时,退出内循环

                }

                connect = i;

            }

            if (boo == true) {// 如果之前的数字有执行相加操作,那么boo的值将变为true

                gps = connect;// 锁定当前connect的值

            }

        }

    }

//这是我代码的一部分。

//之前没有connect这个变量,i是全局变量,在没有设置connect之前,我最后一个if判断里面写的是:gps=i;那么问题来了,

//为什么这里传下来i的值全为-1,导致gps的值也是-1,之后我加了connect,偶然间解决了问题,但是还是没搞明白为什么,求解


cyc川
浏览 1304回答 1
1回答

Lydoo

你的i在哪儿定义的? for 循环里面直接用的i。 如果在类外定义的i,检查是不是有其他地方对i操作过。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java