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 ]

Java之跳转控制语句-break

    double m = 99.9;
    int n = (int)m;
    System.out.println(n);

Java之跳转控制语句-break

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

Java之跳转控制语句-break

  • 思路分析:

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

2. 基本介绍:

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

3. 基本语法

{ ……

break;

  ……
}

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

Java之跳转控制语句-break

5. 快速入门

Break01.java
Java之跳转控制语句-break

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

Java之跳转控制语句-break

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

Java之跳转控制语句-break

    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 );
        }
    }

Java之跳转控制语句-break

  • 把上面的 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 );
        }
    }

Java之跳转控制语句-break

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;
        } 
    }

Java之跳转控制语句-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);

Java之跳转控制语句-break

  1. (一般采用的方式) 也可以在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);

Java之跳转控制语句-break

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

BreakExercise02.java

  • 思路分析

    1. 创建Scanner对象接收用户输入
    2. 定义 String name ; String passwd; 保存用户名和密码
    3. 最多循环3次[登录3次],如果 满足条件就提前退出

      1. 定义一般变量 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 + "次登录机会");
    
    }

Java之跳转控制语句-break

上一篇:艾伟_转载:VS 2010 和 .NET 4.0 系列之《自动启动ASP.NET应用》篇


下一篇:php开发memcached