Java基礎学習記録 707金 | シラタマのAI・プログラミング旅

Java基礎学習記録 707金

条件式の書き方

条件式内はどんな演算子を使う?
関係演算子(==とか)

関係演算子はどうな感じで演算される?
式成り立つなら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とは条件に合致しない場合の処理(不要な場合は省略オッケー)

switch文に変えると⤵

分岐構文のバリエーション
パソコンに条件一致するラベルまで処理をジャンプさせる命令

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構文ね、理解したけどすぐに忘れそう。また会ったら覚えなおすかっ!


コメント

タイトルとURLをコピーしました