0
点赞
收藏
分享

微信扫一扫

Java跳转控制语句--break

棒锤_45f2 2022-03-26 阅读 101

跳转控制语句–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); // 99
        
    2. 返回10个[ 1 , 100 ] 的随机数方法

      for (int i = 1; i <= 10; i++ )
      {
      	   	System.out.println((int)(Math.random() * 100) + 1);
      	}
      
      • 思路分析:

        循环,但是循环的次数不知道. -> break ,当某个条件满足时,终止循环

        通过该需求可以说明其它流程控制的必要性,比如 break

  • 基本介绍:

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

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

    1. break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
    2. 标签的基本使用
           label1:{   ...
              label2:    {   ...
              label3:        {   ...
                              break label2;
                            ...
                   
                        }
                    }
                 }
            若没有指定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 );//01010101
    	    }
    	}
    把上面的 break 改为 break abc1,当执行 内层for循环中 i 自增到 i == 2 时,就会跳出 外层 for 循环结束程序。
    输出0 1
    
    1-100 以内的数求和,求出 当和 第一次大于 20 的当前数 【for + break】
    
    思路分析
    1. 循环 1-100, 求和 sum
    2. 当 sum > 20 时,记录下当前数,然后break
    
            int sum=0;
            for(int i=1;i<=100;i++){
                sum+=i;
                if(sum>20){
                    System.out.println("和>20时候 当前数i=" + 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);
    
    
    (一般采用的方式) 也可以在for循环外部,定义变量 n , 把当前 i 赋给 n,也同样扩大了 i 变量的范围,在其他地方可以输出
    
    	int sum = 0; 
    	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);
    
    
    实现登录验证,有 3 次机会,如果用户名为"皮卡丘" ,密码"666"提示登录成功,否则提示还有几次机会,请使用【 for+break】完成
    思路分析
    1. 创建Scanner对象接收用户输入
    2. 定义 String name ; String passwd; 保存用户名和密码
    3. 最多循环3次[登录3次],如果 满足条件就提前退出
    4. 定义一般变量 int chance 记录还有几次登录机会
    
      import java.util.Scanner;
      int chance = 3;
            for (int i = 1; i <= 3; i++) {
                System.out.println("请输入用户名:");
                String name = new Scanner(System.in).nextLine();
                System.out.println("请输入密码:");
                String passwd = new Scanner(System.in).nextLine();
                if ("皮卡丘".equals(name) && "666".equals(passwd)) {
                    System.out.println("恭喜你,登录成功~");
                    break;
                }
                chance--;
                System.out.println("你还有" + chance + "次登录机会");
                }
    
举报

相关推荐

0 条评论