• 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

  • 相关阅读:
    智能大数据分析平台用例
    Mapreduce实例——去重
    Mapreduce实例——求平均值
    智能大数据分析平台数据流图
    .net程序设计文件操作
    2021.11.17 Guns框架基本应用
    Guns框架基本知识
    2021.11.16 .net——Windows应用程序开发
    1129每日博客
    1126每日博客
  • 原文地址:https://www.cnblogs.com/xdr630/p/15254667.html
Copyright © 2020-2023  润新知