Switch分支语句

Switch分支语句

  • switch分支语句语法:

switch ( 表达式 ) {  
	case 常量1 :[{]
	当表达式的值等于整型常量1时执行的语句; 
	break;//当一种情况包含其他情况时
	[}]
	case 常量2 :[{]
	当表达式的值等于整型常量2时执行的语句; 
	break;
	[}]
 	   ---
	default:[{]
	当表达式的值不满足任何一个case的值时,执行的语句;
     [}]
}

说明:上面中括号代表可有可无。

​
public class SwitchTest {
	public static void main(String[] args) {
		int i=1;
		switch(i){
			case 1 :
				System.out.println("代码1");
			case 2 :
				System.out.println("代码2");
			default :
				System.out.println("代码3");
		}
		System.out.println("代码4");
	}
}

​

上面的程序为一个switch分支,运行的结果为代码1,代码2,代码3,代码4;若将i的值改为2,则结果为代码2,代码3,代码4;由此可见,switch分支运行的结果为从满足条件的case开始,后面的代码全部执行。

若不想让其他代码执行,可以用break或return来实现。

break:

  • break用于结束其所在当前switch语句块程序的运行,但不会影响其所在语句块外部代码的执行。

​
public class BreakTest {
	public static void main(String[] args) {
		int i=1;
		switch(i){
			case 1 :
				System.out.println("代码1");
				break;
			case 2 :
				System.out.println("代码2");
				break;
			default :
				System.out.println("代码3");
		}
		System.out.println("代码4");
	}
}

​

上述程序的运行结果为代码1,代码4;

break结束了switch中case 2及之后的程序,但不影响switch结构外程序的运行。

​
public class BreakTest {
	public static void main(String[] args) {
		int i = 1;
		int k = 1;
		switch (i) {
			case 1:
				System.out.println("代码1");
				switch (k) {
					case 1:
						System.out.println("代码11");
						break;
				}
				//break;
			case 2:
				System.out.println("代码2");
				break;
			default:
				System.out.println("代码3");
		}
		System.out.println("代码4");
	}
}

​

上述程序的结果为代码1,代码11,代码2,代码4;若将“//”去掉,则结果为代码1,代码11,代码4。

return:

  • return用于结束其所在方法的运行。

public class SwitchTest {
	public static void main(String[] args) {
		int i=1;
		switch(i){
		case 1 :
			System.out.println("代码1");
			return;
		case 2 :
			System.out.println("代码2");
			return;
		default :
			System.out.println("代码3");
		}
		//System.out.println("代码4");//去掉前面注释,该行代码会执行吗?
	}
}

执行结果为代码1。

  • 若ruturn一定执行,则后面程序会报错;若有不执行的可能,则不会报错(如:前边有一个break)。

public class SwitchTest {
	public static void main(String[] args) {
		return;
		System.out.println("代码4");	
	}
}
public class SwitchTest {
	public static void main(String[] args) {
		int i = 1;
		switch (i) {
			case 1:
				System.out.println("代码1");
			case 2:
				System.out.println("代码2");
			default:
				return;
		}
		System.out.println("代码4");	
	}
}

上述代码return一定执行,则程序不能执行。

public class SwitchTest {
	public static void main(String[] args) {
		int i = 1;
		switch (i) {
			case 1:
				System.out.println("代码1");
				break;
			case 2:
				System.out.println("代码2");
			default:
				return;
		}
		System.out.println("代码4");	
	}
}

上述代码可执行,因return之上有一个break使return有不执行的可能。

  • return只结束其所在方法的运行。

​
public class ReturnTest {
	
	static void show(){
		System.out.println("代码1");
		return;
	}
	public static void main(String[] args) {
		show();
		System.out.println("代码2");
	}
}

​

运行结果为代码1,代码2,return之结束了show方法,对main方法无影响。

  • return不能用于代码块中。

public class ReturnTest {
	
	static{
		System.out.println("show方法");
		return;
	}
	
	public static void main(String[] args) {
		System.out.println("main方法");
	}
}

由于return用在了代码块中,会报错,无法执行。

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值