こんにちは、せとなお(@setonao1)です。
今回は、プログラミング初心者向けの練習課題として有名な「九九の表を表示するプログラムを作成する」問題について、Javaのfor文を使った桁数揃えの表示方法を解説します。
この記事を見ているプログラミング初心者の方が、コードの内容を理解したうえで模写できる手助けになればと思います。
では、早速見ていきましょう!
仕様の確認
問題1
・一桁の整数の掛け算表(九九表)を出力するプログラムを作成
・ただし、出力を左揃えにして整列させるように出力
問題2
・一桁の整数の掛け算表(九九表)を出力するプログラムを作成
・ただし、出力を右揃えにして整列させるように出力
九九表はfor文の二重ループ(ネストするといいます)を用いることで簡単に作ることができます。
【for文】Javaのサンプルプログラム(左揃え)
以下がサンプルプログラムになります。
最初のfor文で、変数iが1から9まで繰り返します。そして2番目のfor文で、変数jが1から9まで繰り返しています。
これらの文でどのようにプログラムが動いているのか見ていきましょう。
まず、最初のfor文で変数iが1の場合、2番目のfor文で変数jが1~9まで繰り返しています。
この結果、出力されるのは
System.out.print(i * j + ” “);
ということなので、
1 * 1 1 * 2 1 * 3 1 * 4 1 * 5 1 * 6 1 * 7 1 * 8 1 * 9
という繰り返し処理の結果が出力されます。
ここで気を付けてほしいポイントは、for文の結果を出力するときに、System.out.print() を使っていることです。
もしここで、 System.out.println() を使ってしまうと
1 * 1
1 * 2
1 * 3
・
・
・
という風にfor文の結果が縦に出力されてしまいます。
なので、結果の表示はSystem.out.print() で改行しないようにしてください。
そして、ここまで処理されたらfor文の下にある
System.out.println();
の処理が行われます。
これは、「改行します」という意味になります。
そして再び最初のfor文に戻り、今度は変数iが2の時に変数jが1~9まで繰り返します。
2 * 1 2 * 2 2 * 3 2 * 4 2 * 5 2 * 6 2 * 7 2 * 8 2 * 9
この一連の処理の流れが、変数iが9になるまで繰り返されます。
その結果、
という出力が行われます。
【for文】Javaのサンプルプログラム(右揃え)
ここまでは理解できたかと思います。
では、次は、九九の計算結果を右揃えにして出力してみましょう。
出力を右揃えにするなら、単に
System.out.print(” ” + i * j);
という風に、半角スペースの場所を変えてあげればいいのではないかと思った人もいると思います。
しかし、これで実際に出力してみると
という風に上手く右揃えに表示できません。
これは1桁の数字では「 1」というように2行で表示されるのに対し、2桁の数字では「 11」と3行で表示されるため、表記がずれてしまうからです。
では、どうすればよいのかというと、if文を使って1桁の数字の時は半角スペースを一つ増やすという処理を書いてあげると、きれいに揃えることができます。
実際に書いていきましょう。
まず、変数iと変数jの掛け算の結果を、変数mに代入します。
int m = i * j;
右揃えにするので、半角スペースを
System.out.print(” “);
のように改行なしで表示します。
掛け算の結果が1桁の時は、もう一つ半角スペースを改行なしで表示します。
if(10 > m) {
System.out.print( ” ” );
}
この処理を行うことで、十の位に半角スペースが追加され、きれいに揃った表を作成することができます。
最後に掛け算の結果を改行なしで表示します。
System.out.print(m);
その結果、
という風に、右揃えになった表が出力されます。
まとめ
Javaで九九表を表示する方法について解説しました。
繰り返し処理を行うfor文は、プログラミングにおいて必須の知識になります。
プログラミング初心者の方は毎日少しずつでいいからコードを書いてみて、スキルを磨いていくことをおすすめします。
コメント