Switch case 语句的详细解释以及break的几种情况 以及示例演示

本文深入解析了Switchcase语句的使用规则,包括变量类型限制、case后的常量特性、break的作用以及各种执行流程示例。通过具体代码演示,帮助读者理解在不同情况下Switchcase的执行逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Switch case 语句的详细解释以及break的几种情况 以及示例演示#

1.switch()变量类型只能是int、short、char、byte和enum类型。
2.case后面只能是常量,可以是运算表达式。
3.当case进行判断时,没有找到匹配的case值,有没有break;都会执行默认的case
4.当匹配成功时,而且每一个case都没有break的情况下,从匹配成功的case开始,依次输出后面所有case的语句。
5.当匹配成功的case没有break;那就从当前case开始,依次输出后续case的语句,一直到遇到break,则跳出。
6.如果匹配的case有break,则输出当前case语句 然后跳出。

	public class TestSwitchCase {
	/*
	 * 1.byte-->short-->int-->long-->float-->double 自动转换
	 * 2.switch()变量类型只能是int、short、char、byte和enum类型。
	 * 3.case后面只能是常量,可以是运算表达式。
	 * 4.当case进行判断时,没有找到匹配的case值,有没有break;都会执行默认的case
	 * 5.当匹配成功时,而且每一个case都没有break的情况下,从匹配成功的case开始,依次输出后面所有case的语句。
	 * 6.当匹配成功的case没有break;那就从当前case开始,依次输出后续case的语句,一直到遇到break,则跳出。
	 * 7.如果匹配的case有break,则输出当前case语句 然后跳出。
	 */
	public static void main(String[] args) {
		/*float x = 1f;
		//System.out.println(x); 1.0
		switch(x) {
		case 1:
			System.out.println("print 1");
		}*/ //出现编译错误 switch变量类型不支持float
		
		/*long y = 1;
		switch(y) {
		case 1:
			System.out.println("print 1");
		}
		*/ //出现编译错误 switch变量类型 不支持long
		
		/*int  x = 1;
		int  c = 1;
		switch(c) {
		case x:
			System.out.println("print 1");
		}*/ //出现编译错误  case后面不能是变量 只能是一个常量或者运算表达式
		byte x = 1;
		switch(x) {
		case 1/1:
			System.out.println("print 1");
		} //输出结果print 1 case后面可以是一个运算表达式
		
		int i = 8;
        switch(i){
        case 0:
            System.out.println("0");break;
        case 1:
            System.out.println("1");break;
        case 2:
            System.out.println("2");break;
        default:
            System.out.println("default");break;
        }//当case进行判断时,没有找到匹配的case值,则执行默认的case,输出结果default
        
        int m = 0;
        switch(m){
        case 0:
            System.out.println("0");
        case 1:
            System.out.println("1");
        case 2:
            System.out.println("2");
        default:
            System.out.println("default");
        }/*当匹配成功时,而且每一个case都没有break的情况下,从匹配成功的case开始,依次输出后面所有case的语句。
        	输出结果为:0 1 2 default*/
        
        
        int n = 0;
        switch(n){
        case 0:
            System.out.println("0");
        case 1:
            System.out.println("1");
        case 2:
            System.out.println("2");break;
        default:
            System.out.println("default");
        }/*当匹配成功的case没有break;那就从当前case开始,依次输出后续case的语句,一直到遇到break,则跳出。
        	输出结果为: 0 1 2*/
        
        int b = 0;
        switch(b){
        case 0:
            System.out.println("0");break;
        case 1:
            System.out.println("1");
        case 2:
            System.out.println("2");
        default:
            System.out.println("default");
        }//如果匹配的case有break,则输出当前case语句 然后跳出。输出结果为:0
        
	}
}


### C语言 `switch` 语句中的 `break` 在C语言中,`switch` 是一种多分支选择结构,用于根据变量的不同取值执行不同的操作。当匹配到某个特定条件时,默认情况下程序会继续向下执行后续的case语句直到遇到 `break` 或者整个 `switch` 结束。 #### `break` 的作用 `break` 关键字用来终止当前最内层的循环体或 `switch` 语句[^1]。对于 `switch` 来说,在每个 `case` 后面加上 `break;` 可以防止代码“贯穿”(fall-through),即一旦找到匹配项并处理完毕后立即退出 `switch` 而不再检查其他情况。 如果没有设置 `break`,则即使已经找到了符合条件的情况,也会继续往下执行后面的 `case` 和默认部分的内容,这通常不是预期的行为。 #### 示例代码展示 `break` 的使用方法 下面是一个简单的例子来说明如何正确地使用 `break`: ```c #include <stdio.h> int main() { char grade; printf("Enter your grade (A, B, C): "); scanf("%c", &grade); switch(grade){ case 'A': printf("Excellent!\n"); break; // 防止继续执行下一个case case 'B': printf("Good\n"); break; case 'C': printf("Need improvement\n"); break; default: printf("Invalid grade entered.\n"); } return 0; } ``` 在这个例子中,如果输入的是 `'A'` ,那么只会打印 `"Excellent!"` 并结束 `switch` 块;而不会意外地也去打印后面两个消息。这是因为每次成功匹配之后都调用了 `break` 来阻止进一步的执行流程[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值