私のコードは、3で呼び出されたときに、以下の出力を出力することになっていますが、実行するたびに2行のnullが出力されます。再帰の問題
---
*--
**-
***
毎回何かを変更しようとすると、実行時にスタックオーバーフローエラーが発生します。私はこの出力を修正する方法を知っていますが、再帰的には修正しません。ループを使用することは許可されていませんので、それが問題になっています。どんな助けでも大歓迎です。
public void printPattern(int n) {
if(n>0){
System.out.println(printPatternStripes(n));
printPatternStripes(n-1);
System.out.println(printPatternStars(n));
printPatternStars(n+1);
}
}
private String printPatternStars(int stars){
if(stars==0){
return printPatternStars(stars+1) + "*";
}
else{
return null;
}}
private String printPatternStripes(int stripes){
if(stripes!=0){
return printPatternStripes(stripes-1)+ "_";
}
else{
return null;
}}
(!星= 0)あなたはnullを返した場合と(ストライプ場合!= 0)あなたはnullを返します。これはあなたに多くの問題を引き起こしています。 –
[classmate](http://stackoverflow.com/q/43434546/2970947)である必要があります。 –
基本ケースに当たるまで、アンダースコアで始まり、1行に1つずつ置き換えます。 –