如何使以下代码动态/我可以注入循环?

时间:2015-10-20 11:02:18

标签: java

我有一个程序可以打印给定字符串的所有排列可能性。但它是静态的,我硬编码3 for循环,假设字符串的长度为3.但如果我必须使其动态,用户可以输入一个长度为5的字符串。所以我问的是我可以根据用户的输入注入for循环吗?

import java.util.*;
import java.lang.*;

    class Ideone
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            // your code goes here
            String input = "abc";
            int i=0,j=0,k=0;
            for(i=0;i<3;i++){
                for(j=0;j<3;j++){
                    for(k=0;k<3;k++){
                       System.out.println(input.charAt(i)+""+input.charAt(j)+""+input.charAt(k)); 
                    }
                }
            }       
        }
    }

1 个答案:

答案 0 :(得分:0)

不,注入循环并不是可行的(幸运的是,这会使语言变得混乱!)

这样的任务通常可以通过递归实现,递归可以很容易地用于生成排列(字符串,数组或其他任何东西。)

如果确实不想使用递归,还有其他方法,例如你可以计算排列via rotation in loops - 但这些方法通常会更难以遵循(和写。)