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);
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
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 );
}
}
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-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;
}
}
int sum = 0;
int i = 1
for (; i <= 100; i++){
sum += i;
if (sum > 20){
break;
}
}
System.out.println("和>20时候 当前数i=" + 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);
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 + "次登录机会");
}