再帰を使用して、入力された文字列の可能なすべての文字の組み合わせを取得するこのコードがあります。しかし、プログラムの実行時に何が起こっているのかわかりません! 誰かがこのプログラムで何が起こるか説明してもらえますか? 私はまだプログラミングにかなり慣れていないので、説明が複雑すぎないことを感謝します。
public class WordJumble {
public static void main(String[] args) {
String letters = "WORD";
jumbleWords(letters, "");
}
//input parameters
//word - the remaining letters in the word still to jumble
//jumbLet - the letters already used to create the jumbled word
public static void jumbleWords(String word, String jumbLet) {
int pos;
String remainingLetters;
String origWord = word;
String origJumbledLetters = jumbLet;
if (word.length() == 1)
System.out.println(jumbLet + word);
else {
for (pos = 0; pos < origWord.length(); pos++) {
remainingLetters = origWord.substring(0, pos) + origWord.substring(pos + 1, origWord.length());
//recursive call to jumbleWords()
jumbleWords(remainingLetters, origJumbledLetters + origWord.charAt(pos));
}
}
}
}
出力は次のとおりです。
WORD
WODR
WROD
WRDO
WDOR
WDRO
OWRD
OWDR
ORWD
ORDW
ODWR
ODRW
RWOD
RWDO
ROWD
RODW
RDWO
RDOW
DWOR
DWRO
DOWR
DORW
DRWO
DROW
ご協力いただきありがとうございます!