流程控制及break、continue、label的用法:Core Java 3.8

流程中断:continue、break 、 label

continue、 break

  • 这两个关键字必须与循环语句或者switch语句合用;
  • 这两个关键字只能出现在循环体或者switch语句中。
  • break;语句的作用是:退出循环语句,也就是说不再进行循环,直接开始执行循环语句之后的语句。
  • continue;语句的的作用:跳过本次循环中的剩下的语句,进入下一次循环。

label:

  • label这个单词不是JAVA的关键字,只是Java的一个术语,意思是给某个循环语句打个标签,以后遇到这个标签,就是相当于其指代的循环语句。
  • 标签名的规则参考方法的命名规则?可以给循环语句随便起标签名,比如a,b,c,x等。
  • 标签名只能定义在循环语句前,一般定义在嵌套循环的外层循环语句前,可以与循环语句同行,也可以定义在循环语句的上一行。格式如:labelx:for(...){...}
  • 标签只能用在其所指代的循环语句的循环体中。并且只能同break\continue两个关键字合用
  • break labelx;语句的作用:直接退出labelx指代的循环语句,开始执行循环语句之后的语句。
  • continue lablex;语句的作用:直接进入labelx指代的循环语句的下一次循环。
    labelx:格式如下:
outer:
	for(...){
		
		for(...){
			...
			break outer;  // 此处语义是,直接退出outer所指代的外层循环的执行,会直接开始执行下边的语句:out.println("循环结束了");
			...
		} 
	}
out.println("循环结束了");

outer:
	for(int i=0;i<3;i++){
		out.println("outer:"+i);

		inner:
			for(int j=0;j<5;j++){

			if(j==3){
				continue outer;  // 直接跳到外层for循环,执行外层for循环的下一次循环,即执行i++语句,然后执行条件判断语句:i<3;
			}
			out.println("inner:"+j);
	}

while / do while 循环

确定循环:for循环

  • for循环语句是有确定循环次数的,因此称为确定循环。
  • for循环语句用每次迭代后更新的计数器或者变量的方式来控制循环次数。
  • for 语句内定义的变量,其作用域仅在for循环语句和循环体内部。

也就是说,如果在一个代码块内定义了两个非嵌套的for循环,则这两个for循环语句或者循环体内可以定义名称相同的变量。

格式:for ( 语句1; 条件语句; 语句3 ) { // 循环体…}

执行步骤如下:

  1. 先执行语句1,
  2. 然后执行条件语句,进行判断,如果条件成立,则执行花括号{}内的循环体…;否则退出for循环
  3. 然后执行语句3
  4. 然后执行条件语句,进行判断,如果条件成立,则执行花括号{}内的循环体…;否则退出for循环
  5. 接下来就是循环执行 3、4两个步

多重选择:switch语句

switch语句用于部分替代多个if-else的情况。

switch(x) 内的 x 的数据类型可以是以下5种:byte \ short \ char \ int \ String(JRE7)

格式:

Scanner scanner = new Scanner(System.in);
out.println("请输入每种水果前的序号,来选择您喜欢的水果:1 苹果 2 香蕉 3 梨 4 其它");
int choice = scanner.nextInt();
String tips = null;

switch(choice){
	case 1:
		tips="苹果";
		break;
    case 2:
		tips="香蕉";
		break;	
    case 3:
		tips="梨";
		break;
	case 4:
		tips="其它";
		break;
	default:
		tips=null;
		break;			
}
if(Objects.isNull(tips)){
	out.println("您输入的序号不在给定的范围内");
}else {
		out.println("您选择的是:"+tips);
}
break与case穿透

case穿透:如果case x成立,那么就会开始执行此case后的所有语句,直到遇到第一个break;语句才停止执行。即便从case x到遇到的第一个break;语句之间还有其它case语句,如 case y:…;case z:…;都不会再做是否匹配的判断,而是直接执行case y:…;case z:…;内的语句,这种情况称为case穿透。因此一定要记得在每一个case的执行体的最后一行加上break语句,谨防case穿透

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值