Javaでのスイッチ制御ステートメント
switchステートメントについて:
1. witchステートメントは、選択構造であり、分岐ステートメントでもあります。
2.
switchステートメントの文法構造:比較的完全なswitchステートメントは次のように記述する必要があります
switch (int或String类型的字面值或变量){
case int或String类型的字面值或变量:
java语句;
java语句;
...
break;
case int或String类型的字面值或变量:
java语句;
java语句;
...
break;
case int或String类型的字面值或变量:
java语句;
java语句;
...
break;
default:
java语句;
...
}
3.switchステートメントの実行原理:
switchステートメントの後の括弧内の「データ」は1つずつ照合され、正常に照合されたブランチは上から下の順に照合されます。
4.正常に一致するブランチが実行されます。ブランチの最後に「break;」ステートメントがある場合、switchステートメント全体が終了します。
5.正常に一致したブランチが実行されます。ブランチに「break;」ステートメントがない場合、実行のために次のブランチに直接移動します(一致なし)。この現象はケースペネトレーションと呼ばれます。[休憩を提供します;文は浸透を避けることができます]
case穿透:
int i=10;
switch(i){
case 1:
java语句;
case 2:
java语句;
case 3:
java语句;
break;//输入1,输出的结果是前三条java语句
case 4:
java语句;
System.out.println("Test Code!");
break;
}
6.すべてのブランチが正常に一致しません。デフォルトのステートメントがある場合、デフォルトのブランチのプログラムが実行されます。
7.切り替え後は、int型またはString型のデータしか使用できず、他の型は検出できません。
- もちろん、byte、short、charは、自動的に型変換できるため、switchとcaseのすぐ後ろに書き込むこともできます。byte、short、charは自動的にint型に変換できます。
- JDK6では、スイッチとケースの後にint型のみを検出できます。
- バージョン7を含むJDK7以降、新機能が導入されました。switchキーワードとcaseキーワードは、int型とstring型のデータを検出できます。
8.ケースを組み合わせることができます。
int i=10;
switch(i){
case 1:case 2:case 3: //输入1、2、3输出的结果相同
java语句;
break;
case 4:
java语句;
System.out.println("Test Code!");
break;
}
10.switchステートメントの例
public class SwitchTest01
{
public static void main(String[] args){
long a = 10L;
int b = a; //编译错误
long x = 10L;
switch(x){
} //编译报错,switch语句不能用long
解决编译错误:
long x = 10L;
switch((int)x){
}
byte b = 10;
switch(b){
} //编译通过
short s = 10;
switch(s){
} //编译通过
char c = 'A';
switch(c){
} //编译通过
char cc = 12;
switch(cc){
} //编译通过
//编译报错
//switch(ture){}
String username = "zhangsan";
switch(username){
}
}
}
11.スイッチは、Java7の新機能である文字列型を実際に検出できます。
簡単な計算システムの実装:
public class SwitchTest02()
{
public static void main(String[] args){
java.util.Scanner s = new java.util.Scanner(System.in);
System.out.println("欢迎使用简单计算器系统:");
System.out.print("请输入第一个数字:");
int num1 = s.nextInt();
System.out.print("请输入运算符");
String operator = s.next();
System.out.print("请输入第二个数字:");
int num2 = s.nextInt();
int result = 0;
switch(operator){
case "+" :
result = sum1 + sum2;
break;
case "-" :
result = sum1 - sum2;
break;
case "*" :
result = sum1 * sum2;
break;
case "/" :
result = sum1 / sum2;
break;
case "%" :
result = sum1 % sum2;
break;
default :
System.out.println("输入运算符号错误");
}
System.out.println("运算结果为:"+ num1 + operator + num2 + "=" + result );
}
}
システムが受験者のスコアを与えると仮定して、受験者の成績を判断します。
- 有効なスコアの範囲:[0-100]
- 試験のスコアには小数を含めることができます
- テストの点数と成績の関係:
[90-100] A
[80-90] B
[70-80] C
[60-70] D
[0-60] E- 上記の要件は、if
トリックではなく、switchステートメントを使用して完了する必要があります。(int)(score / 10)
public class SwitchTest03()
{
public static void main(String[] args){
double score = 数字:
int grade = (int)(score/10);
switch(grade){
case 9:case 10:
System.out.println("A");
break;
case 8:
System.out.println("B");
case 7:
System.out.println("C");
case 6:
System.out.println("D");
default:
System.out.println("E");
}
}
}