条件式の書き方
条件式内はどんな演算子を使う?
関係演算子(==とか)
関係演算子はどうな感じで演算される?
式成り立つならtrue,じゃなきゃfalse
文字列を比較するときにどう書く?
equalsを使う
例: if(name.equals.(“代入された変数”))
分岐構文のバリエーション
if- else if -else 構文のルール
名の通り、else-if ブロックはifとelseの間だけオッケー
もしelseのブロックの中身がカラなら?
elseごと省略してオッケー
すべての条件が整数の一致するかの比較式なら、条件文を何文に書き換えられる?
switch文
switch文はどう違う?
・if (fortune == 1)を switch (fortune変数名)に
・else if (fortune == 2) をcase 1: (ケースラベル)に
・ブロックごとbreak;を入れる
・defaultとは条件に合致しない場合の処理(不要な場合は省略オッケー)
![](https://shiratama0000.com/wp-content/uploads/2023/07/スクリーンショット-2023-07-07-115838.png)
switch文に変えると⤵
![](https://shiratama0000.com/wp-content/uploads/2023/07/スクリーンショット-2023-07-07-120314.png)
分岐構文のバリエーション
パソコンに条件一致するラベルまで処理をジャンプさせる命令
break;の役割は?
処理を中断して、switch文を抜けさせる
//※ここで僕は戸惑った。swtich文はif- else if – else 文の簡単バージョンであることは分かった。switchのあとは条件を書く必要がなく、直接変数名を書けばいいということも分かった。しかし、break;の存在意味って何?処理を中断して、switch を抜けさせる意味って何?
はい、このときはchatGPT先生に聞いてみよう//
答えはこうでした⤵
Javaの
switch
文では、break
ステートメントはswitch
文のブロックを終了し、プログラムの実行を次の文に移す役割を持ちます。
switch
文は、ある式の値に基づいていくつかのケース(case)を評価し、一致するケースが見つかった場合にそのブロック内の文を実行します。break
ステートメントが実行されると、switch
文のブロックから抜け出し、switch
文の終了位置の次の文に進みます。例えば、以下のコードを考えてみましょう:
javaCopy codeint day = 4; String dayName; switch (day) { case 1: dayName = "Monday"; break; case 2: dayName = "Tuesday"; break; case 3: dayName = "Wednesday"; break; case 4: dayName = "Thursday"; break; case 5: dayName = "Friday"; break; default: dayName = "Unknown"; break; } System.out.println(dayName);
この場合、
day
が4であるため、case 4
のブロックが実行されます。dayName
には”Thursday”が代入されます。そして、break
ステートメントによりswitch
文のブロックを抜け出し、System.out.println(dayName);
が実行され、”Thursday”が出力されます。もし
break
ステートメントが存在しない場合、case
のブロックが一致するだけ実行された後、次のcase
のブロックが順番に実行されてしまいます。これを「フォールスルー(fall-through)」と呼びます。break
ステートメントがないと、意図しない動作や不具合が発生する可能性があります。したがって、
switch
文では通常、case
のブロックの最後にbreak
ステートメントを記述することが推奨されます。これにより、一致したケースのブロックのみが実行され、他のケースのブロックを実行することが防がれます。
さらに要約してもらうと・・・
switch
文では、break
ステートメントは、一致したケースのブロックを実行した後、switch
文のブロックから抜け出し、次の文に進む役割を持ちます。break
ステートメントがない場合、他のケースのブロックも実行される可能性があります。したがって、一致したケースのブロックを実行した後は、break
ステートメントを使用してswitch
文のブロックを終了する必要があります。
要は、
前提としてswtich文って必ず整数変数の比較評価(一致するかどうか)じゃん。
つまり整数のケースを順に並んでいけば必ず当てはまるケースが来るじゃん。
そのケースが来たときにパソコンは初めて処理を行うじゃん。
そのケースの処理をしたらもうswitch文って用済みじゃん。
そこで、switch文でそのケースより下のケースはもう処理する必要がないじゃん。
だ・か・ら・
break; ていう文は「はい、当てはまるケースを探し出してくれてありがとう!もうこのswitch文から抜け出していいよ!」という指令なのよ!!!(ワイ天才)
補足(おそらく当てはまらないケースは処理しなくていいという命令にもなってる?かも)
今日はマジで疲れた。switch構文ね、理解したけどすぐに忘れそう。また会ったら覚えなおすかっ!
コメント