Java之跳转控制语句-break

举报
兮动人 发表于 2021/10/07 09:44:50 2021/10/07
【摘要】 Java之跳转控制语句-break

跳转控制语句-break

1. 看下面一个需求

  • 随机生成 1-100 的一个数,直到生成了 97 这个数,看看你一共用了几次?
    提示使用 (int)(Math.random() * 100) + 1
  • 方法分析:查看 random 方法和API,前面加上 int 就是强制类型转换,Math.random() 范围是 [ 0 , 1) ,乘上 100 就是 [ 0 , 100 ),前面加上 int 就是 double --> int ,强转会造成精度缺失,所以范围变成了 [ 0 , 99 ] ,加上 1 就是 [ 1 , 100 ]
    在这里插入图片描述
	double m = 99.9;
	int n = (int)m;
	System.out.println(n);

在这里插入图片描述

  • 返回10[ 1 , 100 ] 的随机数方法
	for (int i = 1; i <= 10; i++ ){
	   	System.out.println((int)(Math.random() * 100) + 1);
	}

在这里插入图片描述

  • 思路分析:
    循环,但是循环的次数不知道. -> break ,当某个条件满足时,终止循环
    通过该需求可以说明其它流程控制的必要性,比如 break

2. 基本介绍:

  • break 语句用于终止某个语句块的执行,一般使用在 switch 或者循环[for , while , do-while]中

3. 基本语法

{ ……

break;

  ……
}

4. 以 while 使用 break 为例,画出示意图

在这里插入图片描述

5. 快速入门

Break01.java
在这里插入图片描述

  • 当 i == 3 时,break会跳出循环
	for (int i = 1; i <= 10; i++ ){
	    if(i == 3){
	        break;
	    }
	    System.out.println("i="+i);
	}
	System.out.println("退出for循环,继续执行后面的代码...");

在这里插入图片描述

6. 注意事项和细节说明:

在这里插入图片描述

	abc1:
	for (int j = 0; j < 4; j++){   //外层for
	abc2:
	    for (int i = 0; i < 10; i++){   //内层for
	        if (i == 2){
	            break;  // 等价于 break abc2
	        }
	        System.out.println("i="+i );
	    }
	}

在这里插入图片描述

  • 把上面的 break 改为 break abc1,当执行 内层for循环中 i 自增到 i == 2 时,就会跳出 外层 for 循环结束程序。
	abc1:
	for (int j = 0; j < 4; j++){   //外层for
	abc2:
	    for (int i = 0; i < 10; i++){   //内层for
	        if (i == 2){
	            break abc1;  
	        }
	        System.out.println("i="+i );
	    }
	}

,

7. 课堂练习题

BreakExercise01.java

  1. 1-100 以内的数求和,求出 当和 第一次大于 20 的当前数 【for + break】
  • 思路分析
    1. 循环 1-100, 求和 sum
    2. 当 sum > 20 时,记录下当前数,然后break
	int sum = 0; //累积和
	
	//注意i 的作用范围在 for{}
	int n = 0;
	for(int i = 1; i <= 100; i++) {
		sum += i;//累积
		if(sum > 20) {
			System.out.println("和>20时候 当前数i=" + i);
			n = i;
			break;
		} 
	}

在这里插入图片描述

  • 为了使 i 的作用域变大,不只在 for 循环中,可以这样写:
	int sum = 0;
	int i = 1
	for (; i <= 100; i++){
	    sum += i;
	    if (sum > 20){
	        break;
	    }
	}
	System.out.println("和>20时候 当前数i=" + i);

在这里插入图片描述
3. (一般采用的方式) 也可以在for循环外部,定义变量 n , 把当前 i 赋给 n,也同样扩大了 i 变量的范围,在其他地方可以输出

	int sum = 0; //累积和
	
	//注意i 的作用范围在 for{}
	int n = 0;
	for(int i = 1; i <= 100; i++) {
		sum += i;//累积
		if(sum > 20) {
			System.out.println("和>20时候 当前数i=" + i);
			n = i;
			break;
		} 
	}
	
	System.out.println("当前数=" + n);

在这里插入图片描述

  1. 实现登录验证,有 3 次机会,如果用户名为"兮动人" ,密码"666"提示登录成功,否则提示还有几次机会,请使用【 for+break】完成

BreakExercise02.java

  • 思路分析
    1. 创建Scanner对象接收用户输入
    2. 定义 String name ; String passwd; 保存用户名和密码
    3. 最多循环3次[登录3次],如果 满足条件就提前退出
    4. 定义一般变量 int chance 记录还有几次登录机会
	Scanner myScanner  = new Scanner(System.in);
	String name = "";
	String passwd = "";
	int chance = 3; //登录一次 ,就减少一次
	for( int i = 1; i <= 3; i++) {//3次登录机会
	    System.out.println("请输入名字");
	    name = myScanner.next();
	    System.out.println("请输入密码");
	    passwd = myScanner.next();
	    //比较输入的名字和密码是否正确
	    //补充说明字符串 的内容 比较 使用的 方法 equals
	    if("兮动人".equals(name) && "666".equals(passwd)) {
	        System.out.println("恭喜你,登录成功~");
	        break;
	    }
	
	    //登录的机会就减少一次
	    chance--;
	    System.out.println("你还有" + chance + "次登录机会");
	
	}

在这里插入图片描述

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。