どうも! 職業訓練生のがっちゃんです!
50歳にして、長期人材育成「情報セキュリティ管理者資格」2年コースを絶賛受講中です!
今回は、Javaの授業の最初で学ぶ「トライアングル」と「九九表」プログラムのお話しです。「for」文という繰り返し構文を入れ子構造にしたらどんな動きになるのか!?そのお勉強のためのプログラムです。
腕試し「トライアングル」プログラムの作成
まずは「トライアングル」プログラムから。実行画面がこんなふうになればOK。
for文を一つ使って繰り返し構文を作成してみます。プログラムと実行結果は、以下のような感じです。
そのまま「各段に数字を1から5まで振ってみました」という感じです。これにfor文をもう一つ、入れ子構造にしてプログラムして出来上がりです。んん!?「*」が縦にならんでしまった。「System.out.println(” “+”*”)」のとこが「println」になってる。そら改行しながら「*」を書いていくわな。「print」にしましょう。これでうまくいくはずですね。
うまくいったプログラムが以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/** * トライアングル * @author がっちゃん */ public class Triangle { public static void main(String[] args) { //↑は予約語です。これがないとプログラムが動きません。 System.out.println("トライアングル"); System.out.println(); final int TOTAL = 5; //段のコントロール用の繰り返し構文 for( int i=1; i<= TOTAL; i=i+1 ) { //System.out.println(i); //各段に、いくつ*を書いたらいいのか for( int j=1; j<= i; j=j+1 ) { //i段目はi個書けばいい(printlnじゃないよ) System.out.print(" " + "*"); } //一段*を書き終わったら改行 System.out.println(); } } } |
トライアングル逆さで出力できる!?
というわけで上のトライアングルができたら、今度は逆トライアングルのチャレンジです!私も今となってはカンタンですが、Java初心者の時には、難題でした。
ちょっと自分で色々と試してみてください。いろいろなプログラムを書いて実行していると、面白い動きをしたり、思いのつかない動きがあったりと、なかなか楽しいですよ。間違うこと、というか試すことで、プログラムの勉強になりますよ。
ってか、初心者のときに、いっぱい間違った(試した)ことが、後々、とっても役にたちます!ITのお勉強全般に言えることですね。
答えをすぐに欲しがらず、まずは自分でいろいろと試してみよう!
というわけで、ここでは実行結果だけ掲載。このプログラムの答えは、ページの一番下に貼り付けておきますね。
九九の表を作ってみる
次も同じように「for文」の入れ子構造で九九表を作っていきます。
トライアングルと同じく、for文を一つ使って繰り返し構文を作成。プログラムと実行結果は以下の通りになります。こちらも同じく各段に1から9まで書きました、みたいな感じになりました。
これに、入れ子構造でfor文を追加。今度は間違えずに「print」で表示させようね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
/** * 九九表の作成 * @author がっちゃん * */ public class Math9X9 { public static void main(String[] args) { System.out.println("掛け算の九九表を出すよ٩( 'ω' )و"); System.out.println(); final int TOTAL = 9; //↓段のコントロール用の繰り返し構文 for( int i = 1; i<=TOTAL; i=i+1 ) { //System.out.println(i); //掛ける相手のコントロール用繰り返し構文 for( int j=1; j<=TOTAL; j=j+1 ) { if( (i*j) <= TOTAL) { //数字1文字の間は半角スペース1つ追加してね System.out.print(" "); } System.out.print(" " + (i*j) ); } //一段、句句の表を書き終わったら改行 System.out.println(); } } } |
出来上がったプログラムを実行したらこんな感じになります。
表示を少し豪華!?にする
授業で習ったのはここまでだけど、このままじゃぁ、ちょっと味気ないですね。そんなわけで、ちょっとゴニョゴニョと改造してみましょう。フッフッフ!今の私のプログラミングの実力を見せてやろうではないか!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
/** * 九九表の作成 * @author がっちゃん * */ public class Math9X9 { public static void main(String[] args) { System.out.println("掛け算の九九表を出すよ٩( 'ω' )و"); System.out.println(); final int TOTAL = 9; //↓段のコントロール用の繰り返し構文 for( int i = 1; i<=TOTAL; i=i+1 ) { System.out.print(i + "の段"); //掛ける相手のコントロール用繰り返し構文 for( int j=1; j<=TOTAL; j=j+1 ) { if( (i*j) <= TOTAL) { //数字1文字の間は半角スペース1つ追加してね System.out.print(" "); } System.out.print(" " + i + "X" + j + "=" + (i*j) ); } //一段、句句の表を書き終わったら改行 System.out.println(); } } } |
プログラムの実行結果は以下の通り。ま、表示のとこをちょっとイジっただけっす(笑)。プログラムの腕前は関係ないっすね。
逆トライアングルの答え
最後に逆トライアングルの回答を掲載。そんな難しくはないんだけど、思考して試行することが大切。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/** * 逆トライアングル * @author がっちゃん */ public class Trianglereverse { public static void main(String[] args) { //↑は予約語です。これがないとプログラムが動きません。 System.out.println("逆トライアングル"); System.out.println(); final int TOTAL = 5; //段のコントロール用の繰り返し構文 for( int i=1; i<= TOTAL; i=i+1 ) { //System.out.println(i); //各段に、いくつ*を書いたらいいのか for( int j=1 ; j<= TOTAL-i; j=j+1 ) { //i段目はi個書けばいい(printlnじゃないよ) System.out.print(" " + "*"); } //一段*を書き終わったら改行 System.out.println(); } } } |
それでは本日も最後までお付き合いいただき、ありがとうございました!