質問: 10進数を指定のn進数に変換するプログラムを書きましたが、Outofmemoryエラーが出ました 原因と思われる文は以下の通りです。 nは変換する10進数表記の数字、n2は指定するn進数のnの数値 static StringBuffer GetArray(int n,int n2){ int num=n; int num2=n2; StringBuffer Str=new StringBuffer(""); String R; int r,q; do{ r=num%num2; q=num/num2; R=String.valueOf(r); Str.append(R);//エラー文ではここの行数が表示されていた }while(q !=0); Str.reverse(); return Str; } }
回答: 現象だけが書かれていて、確認したこと、回答者に何を求めているかを書いてない。 つまり質問になってない。 コマンドラインでやる場合は、古典的なprintデバッグをすればいい。 デバッグの基本は、どこまで期待通りで、どこからおかしいのかを追ってみることだ。 直接答えを求めるのではなく、自力で見つけれられるテクニックを身に付けることを考えよう。 で、1つ目の回答者へ。 初心者には厳しすぎる、はおかしい。統合環境ができるまでは皆そうやっていたんだ。 さらに遡れば、端末でジョブを作ってホストにコンパイル依頼していた。 この頃はデバッグといえばプリントアウトして目視で追うもので、お試し実行など以ての外だった。また印刷するにもジョブをつくる必要があった。そして、それが当たり前だった。 今のツールが楽なことと、初心者に厳しいかどうかとはまた別の話だ。