※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
こんにちは。こんぶです。
今日は、「【Java-18】分岐構文②switch構文」のチャレンジ問題を解いてみましょう!
今日の問題は【Java-18】の内容を元にしているので、復習してから挑戦してみてくださいね。
チャレンジ問題
①if構文をswitch構文に書き換える条件は?(2つ)
②switch構文で、すべての条件に合致しない場合に実行される「default」部分ですが、省略することはできますか?
③switch構文の処理内容を「:」と「break;」で囲む記述方法で、途中の「break;」を省略することはできますか?
④複数の値で同じ処理を実行したい場合には、複数の値をどのように記載しますか?
⑤switch構文の中でも分岐が2つの場合は、何で書き換えることができますか?
⑥switch構文を三項条件演算子で書き換える時は、どのように記載しますか?
⑦「int型の変数 day 」に入っている数値が「1~7」の場合は「月曜日~日曜日」の各曜日を表示し、1~7以外の場合は「その他」と表示するというコードを、「switch構文」2パターンで記述してください。(switch構文より前でint型の変数 day を3で初期化してください)
⑧⑦のコードを実行した結果、画面に表示されるのは何ですか?
⑨「int型の変数 number に入っている数値が0より大きい」という条件式に当てはまる場合は「0より大きい」と表示し、当てはまらない場合は「0以下」と表示させるコードを、「三項条件演算子」1行で記述してください。(「int型の変数 number 」はこのコードよりも前で宣言されているとする。また、「String型の変数 message」を使用すること。実際に表示する命令は記載しないこととする。)
⑩⑨の「String型の変数 message」に入っている内容を実際に表示するためには、どのような命令を追記する必要がありますか?
解答
①すべての条件式について、左辺と右辺が一致するかを比較する式(==)になっている。(>、<、!=、等は使用されていない)
比較する対象が、整数(byte型、short型、int型のどれか)、文字列(String型)、文字(char型)である。(小数や真偽値ではない)
②省略できます
→条件に合致しない場合の処理が不要であれば省略できるんでしたね。
③省略できません
→「break;」を書き忘れてしまった場合、コンパイルエラーにはならず、すぐ下の別のcase部分も続けて実行されてしまうため、注意が必要でしたね。
④複数の値をカンマ区切りで記載する
→複数の値で同じ処理を実行したい場合には、「case」の次に複数の値をカンマ区切りで記載できます。
⑤三項条件演算子
⑥「型 変数名 = 条件式 ? 値1 : 値2 ;」
→三項条件演算子は、1行で記載できます。
⑦次の2つです。(1行目の「Main」は別の文言でも大丈夫です)
⑧水曜日
→switch構文より前でint型の変数 day を3で初期化しているので「水曜日」と表示されることになりますね。
⑨「String message = (number > 0) ? “0より大きい” : “0以下”;」
→表示させたいものが文字列なので「String型の変数 message 」を左辺に準備し、右辺には条件式(int型の変数 number に入っている数値が0より大きい)と値1(0より大きい)と値2(0以下)を記述します。
⑩「System.out.println(message);」
→画面に表示する命令は「System.out.println();」を使用するのでしたね。
お疲れさまでした
どれくらい正解できましたか?
色々な記述方法があって、覚えるのが大変ですよね。
ですが、スッキリしたコードを書けるようになるとミスも減ると思いますし、色々な記述方法を覚えることでバリエーションが増えますね!少しずつ覚えていきましょう。
次の内容はこちらです→【Java-19】繰り返し構文①while構文
それでは、こんぶはじゃ~
コメント