为什么要继续执行该程序

时间:2014-02-10 08:00:21

标签: java recursion command-line-arguments

以下程序是一个递归程序,用于检查数组中的重复条目。程序编译没有错误,但是在我输入命令行参数并按Enter后,它不会继续。光标只是闪烁!它也不会返回任何运行时错误!如果有人解释为什么会这样,那将非常有帮助!谢谢! :)

import java.io.*;
    class RepeatEntries_Recursive
    {
        static int i=0,flag=0;
        public static void main(String[] args) throws IOException
        {
            int[] inp = new int[6];
            for(int k=0;k<args.length;k++)
                inp[k] = Integer.parseInt(args[k]);
            boolean hasItRepeated = Repeating(inp,i);
            if(hasItRepeated == true)
                System.out.println("\nYes, there are entries that repeat in the array!");
            else
                System.out.println("\nNo, entries don't repeat in the array");
        }
        static boolean Repeating(int[] inp,int i)
        {
            for(int j=0;j<inp.length;j++)
            {
                if(inp[i] == inp[j])
                    flag = 1;
                while(i<inp.length-1)
                    Repeating(inp,i+1);
            }
            if(flag==1)
                return true;
            else
                return false;
        }
    }

1 个答案:

答案 0 :(得分:6)

while(i<inp.length-1)
    Repeating(inp,i+1);

你的程序无法摆脱这个循环。