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 + "次登录机会");
	
	}

在这里插入图片描述

本文来自博客园,作者:兮动人,转载请注明原文链接:https://www.cnblogs.com/xdr630/p/15254667.html

原文地址:https://www.cnblogs.com/xdr630/p/15254667.html