DabaiはJavaソフトウェアの包囲ライオンの9日目になりました(スイッチ制御ステートメント)

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=10switch(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=10switch(i){
    
    
	case 1case 2case 3//输入1、2、3输出的结果相同
		java语句;
		breakcase 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");
		}
	}
}

おすすめ

転載: blog.csdn.net/qq2632246528/article/details/112568404