こんにちは。ECF Tech ブログ担当 Michiharu.Tです。
Javaプログラミング向け練習問題、今回のテーマは「分岐構文」です。 ifやswitchなどを取り扱います。制御構文はプログラミング初学者の方の最初のつまづきポイントともいえるかもしれません。ぜひ、学習にお役立てください。 一般的なJavaの学習順序に沿ったテーマの一覧(※随時追加)は、こちらのリンクよりご確認頂けます。Javaプログラミング
Javaのトピックスです。主に初心者向けにプログラミング学習ネタを提供していきます。
解説動画
2023/01/03 解説動画を掲載しました。
問題編
Q001
問題
①に「aが7より大きいならtrue」という式を記述し、 実行結果を得てください。
提供コード
public class Quiz001 { public static void main(String[] args) { int a = 12; if (①) { System.out.println("aは7より大きいです。"); } } }
実行結果
aは7より大きいです。
public class Quiz001 { public static void main(String[] args) { int a = 12; if (a > 7) { System.out.println("aは7より大きいです。"); } } }
Q002
問題
下記を行ない、実行結果を得てください。
- 提供コード内の①に「aが8以上ならtrue」という式を記述します。
- 提供コード内の7行目にelseブロックを追加します。ブロック内には 「aは8より小さいです」と表示するプログラムを記述します。
提供コード
public class Quiz002 { public static void main(String[] args) { int a = 7; if (①) { System.out.println("aは8以上です。"); } //elseブロックをここに書きます } }
実行結果
aは8以下です。
public class Quiz002 { public static void main(String[] args) { int a = 8; if (a > 8) { System.out.println("aは8以上です。"); } else { System.out.println("aは8より小さいです。"); } } }
Q003
問題
下記を行ない、実行結果を得てください。
- ①に「aが7より小さいならtrue」となる式を書きます。
- コメントにならい、else ifブロックを追加します。else ifの条件は「aが7ならtrue」とします。またブロック内には、「aは7です」と画面に表示するプログラムを入れます。
- コメントにならい、elseブロックを追加します。ブロック内には「aは7より大きいです」と表示するプログラムを入れます。
提供コード
public class Quiz003 { public static void main(String[] args) { int a = 7; if (①) { System.out.println("aは7より小さいです"); } //ここにelse ifブロックを追加します。 //ここにelseブロックを追加します。 } }
実行結果
3行目のaの値を変えてコンパイル・実行をし、それぞれ 次の結果を得てください。 a = 6の時
aは7より小さいです
a = 7の時
aは7です
a = 8の時
aは7より大きいです
public class Quiz003 { public static void main(String[] args) { int a = 7; if (a < 7) { System.out.println("aは7より小さいです。"); } else if (a == 7) { System.out.println("aは7です。"); } else { System.out.println("aは7より大きいです。"); } } }
解説
else if
ブロックは、if
ブロックに続けていくつも書くことができます。
Q004
問題
下記のとおりに動作するswitch文を完成してください。
- a = 1またはa = 2の時は、画面に「小」と表示する
- a = 3またはa = 4の時は、画面に「中」と表示する
- a = 5またはa = 6の時は、画面に「大」と表示する
提供コード
public class Quiz004 { public static void main(String[] args) { int a = 5; switch (a) { //ここからプログラムを書きます } } }
実行結果
3行目のaの値を変えてコンパイル・実行をし、それぞれ 次の結果を得てください。 a = 1の時
小
a = 3の時
中
a = 5の時
大
public class Quiz004 { public static void main(String[] args) { int a = 5; switch (a) { case 1: case 2: System.out.println("小"); break; case 3: case 4: System.out.println("中"); break; case 5: case 6: System.out.println("大"); break; } } }
解説
switch文内では、該当のcase部分から順に実行され、break
がくるまで実行され続けます。
Q005
問題
aが奇数か偶数かを判定し、
- aが奇数なら、「aは奇数です」
- aが偶数なら、「aは偶数です」
%
演算子を使います。
提供コード
public class Quiz005 { public static void main(String[] args) { //0~9までのランダムな値をaに代入してくれる命令です。 int a = new java.util.Random().nextInt(10); System.out.println("a = " + a); //ここからプログラムを書いていきます。 } }
実行結果
aが4のとき
a = 4 aは偶数です。
aが3のとき
a = 3 aは奇数です。
public class Quiz005 { public static void main(String[] args) { int a = new java.util.Random().nextInt(10); System.out.println("a = " + a); if (a % 2 == 0) { System.out.println("aは偶数です。"); } else { System.out.println("aは奇数です。"); } } }
解説
%
を使った判定式は様々なケースで活躍できます。「5回ごとに実行する」などのプログラムも作成可能です。
Q006
問題
変数aの絶対値を表示するプログラムを、提供コードのコメント部分に記述してください。
提供コード
public class Quiz006{ public static void main(String[] args){ int a = -5; //ここからプログラムを書きます。 } }
実行結果
3行目のaの値を変更して、コンパイル・実行し、それぞれ次の結果を得てください。aが5のとき
5
aが-5のとき
5
public class Quiz006{ public static void main(String[] args){ int a = -5; //ここからプログラムを書きます。 if( a < 0 ){ a *= -1; } System.out.println(a); } }
解説
aの値が負の数(a<0)の場合だけ、-1をかけることにより絶対値を求めることができます。
おわりに
いかがでしたでしょうか。制御構文が入ってくるとプログラミングの幅が一気に広がります。問題もある意味いくらでもつくれます(笑)。というわけで、ひきつづき単元ごとに問題を徐々に増やしていきたいと思っていますので、よろしければぜひご活用ください。[PR]
Javaをもっと詳しく学びたい!という方には、下の書籍がおススメです!筆者も愛用しています。
スッキリわかるJava入門 第4版 (スッキリわかる入門シリーズ)
スッキリわかるJava入門 第4版 (スッキリわかる入門シリーズ)