2016-05-21 15 views
0

ランダムな文字列を生成するためにrecircive関数を作成する必要があります - recrusiveを次のように設定すると、char値がaから始まり、増加しません - 何が間違っていますか?ランダムな文字列を生成する再帰関数 - charを増やすには?

private static String findPasswordTest2(Password p, int length, String testString, char a) 
{ 
    if (p.isPassword(testString)) 
    { 
     return testString; 
    } 

    if (a!='z') 
    { 
     findPasswordTest2(p, length, testString, a++); 
     findPasswordTest2(p, length, testString+a, a++); 
    } 

    findPasswordTest2(p, length, testString+a, a); 

    if (p.isPassword(testString)) 
    { 
     return testString; 
    } 

    return "error"; 
} 

答えて

1

ポストインクリメントを実行する代わりに、プリインクリメントを実行する必要があります。 ++を使用する場合、次のcharにインクリメントしますが、ポストインクリメントであるため、初期値が返されます。 次のようにすると、望ましい結果が得られます。

findPasswordTest2(p,length,testString,++a); 
findPasswordTest2(p,length,testString+a,++a); 
関連する問題