3章20

もちろんです。以下は、Javaのコードスニペットにコメントを追加したものです。各case文の動作を解説しています。

public class Main { public static void main(String[] args) { final int NUM = 0; // 'NUM'は定数として0に設定されている。 int num = 10; // 'num'は変数として10に設定されている。 switch (num) { // 'num'の値が10であることに基づいて、以下の'case'文が評価される。 // 以下のケースでは型の不一致があるためコンパイルエラーになる。 // 'num'はint型であるため、文字列リテラルとマッチすることはできない。 case "10": // コンパイルエラー: 'case'ラベルは'int'型のリテラルか定数式である必要がある。 System.out.println("A"); break; // 以下のケースでは変数が使用されており、Javaではコンパイルエラーとなる。 // 'case'ラベルには定数値が必要であり、変数を使うことはできない。 case num : // コンパイルエラー: 'case'ラベルとして変数は許されていない。 System.out.println("B"); break; // このケースは正しく機能する。'2 * 5'はコンパイル時に評価される定数式であり、 // 'num'の値と一致するため、このケースが実行される。 case 2 * 5 : // 実行されるケース: 'num'の値10と一致。 System.out.println("C"); // この行が出力される。 break; // 以下のケースでは定数が使われているが、'num'の値とは一致しない。 // 'NUM'は0であり、'num'の値は10なので、一致しない。 case NUM : // 実行されないケース: 'NUM'は0であり、'num'の値10とは一致しない。 System.out.println("D"); break; } }
}
Enter fullscreen mode
Exit fullscreen mode

上記のコメントはコードの各部分がどのように機能するか(または機能しないか)を説明しており、特に6行目と8行目のコンパイルエラーに注目しています。case "10":は型の不一致でコンパイルエラーが生じ、「case num:」はswitch文内で変数がcaseラベルとして許されていないため、こちらもコンパイルエラーが生じます。


Discover more from Coursity

Subscribe to get the latest posts sent to your email.

Leave a Comment

Your email address will not be published. Required fields are marked *

Discover more from Coursity

Subscribe now to keep reading and get access to the full archive.

Continue reading

Scroll to Top
Martins ad network.