A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class LuckNumber
{
        public static void main(String[] args)
        {
                int[] arr = {1,2,3,4,5,6,7,8};

                int pos = -1;

                for(int x=0;x<arr.length-1; x++)
                {
                        for(int y=0; y<3;y++)
                        {
                                pos++;

                                if(pos==arr.length)
                                        pos=0;
                                while(arr[pos]==0)
                                {
                                        pos++;
                                        if(pos==arr.length)
                                                pos=0;
                                }
                        }
                        arr[pos] = 0;
                        System.out.println(arr[pos]);
                }

                for(int x=0; x<arr.length; x++)
                {
                        if(arr[x]!=0)
                        {
                                System.out.println(arr[x]);
                                break;
                        }
                }
        }
}
麻烦能看懂的大神解释一下,谢谢!

3 个回复

倒序浏览
这个题是什么意思?什么是幸运数字?每次运行结果都是七个0  一个7,这个程序主要目的是什么?
回复 使用道具 举报
shi980088 发表于 2014-6-3 21:52
这个题是什么意思?什么是幸运数字?每次运行结果都是七个0  一个7,这个程序主要目的是什么? ...

这是我看黑马自学视频时对应的源码,看不懂,所以想问一下有谁能明白是什么意思?
回复 使用道具 举报
class LuckNumber
{
        public static void main(String[] args)
        {
                int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8 };

                int pos = -1;

                for (int x = 0; x < arr.length - 1; x++)
                {
                        for (int y = 0; y < 3; y++)
                        {
                                pos++;
                                System.out.println("pos+++" + pos);//这里我多加了一条输出语句,方便你看pos的数值变化,如再看明白,我不知如何了
                                if (pos == arr.length)
                                        pos = 0;
                               
                                while (arr[pos] == 0)
                                {
                                        pos++;
                                        if (pos == arr.length)
                                                pos = 0;
                                }
                        }
                        arr[pos] = 0;
                        System.out.println(arr[pos]);
                }

                for (int x = 0; x < arr.length; x++)
                {
                        //if (arr[x] != 0)
                        //{
                                System.out.println(arr[x] + "+++++++");
                                //break;
                        //}
                }
        }
}
这道题的最终结果是:int型数组中只留下一个元素保留原来数值。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马