跳转控制语句-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-100, 求和 sum
- 当 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);
- (一般采用的方式) 也可以在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);
2) 实现登录验证,有 3
次机会,如果用户名为"兮动人
" ,密码"666
"提示登录成功,否则提示还有几次机会,请使用【 for+break】完成
BreakExercise02.java
思路分析
- 创建
Scanner
对象接收用户输入 - 定义
String name ; String passwd;
保存用户名和密码 最多循环
3
次[登录3次],如果 满足条件就提前退出- 定义一般变量
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 + "次登录机会");
}