目录
一、break语句
一、基本介绍
break 语句用于终止某个语句块的执行,一般使用在 switch 或者循环[for , while , do-while]中
二、流程图
三、注意事项
①:break后面可以通过标签指名要结束哪一层语句块
eg 结束label1,即外循环
public class BreakDetail{
//编写一个main方法
public static void main(String[] args){
label1:
for(int j = 0; j < 4; j++){
label2:
for(int i = 0; j < 10; i++){
if(i == 2){
break label1;//当i==2时,结束整个外循环
}
System.out.println("i = " + i);
}
}
}
}
四、练习
1) 1-100 以内的数求和,求出 当和 第一次大于 20 的当前数 【for + break】
思路分析:
1.循环输出1-100
2.求1+2+3+...100相加,定义变量sum来记录
3.使用if+break,当sum>20时,输出num
public class breaknote{
//编写一个main方法
public static void main(String[] args){
int sum = 0;
for(int num = 1; num <= 100; num++){
sum +=num;
if(sum>20){
System.out.println(num);
break;
}
}
System.out.println(sum);
}
}
注意事项:变量num的作用域局限在for循环内,如果在for循环外输出num,编译时会报错 java:19: 错误: 找不到符号
System.out.println(num);
解决方法1:在for循环外定义num
public class breaknote{
//编写一个main方法
public static void main(String[] args){
int sum = 0;
int num = 1;
for(; num <= 100; num++){
sum +=num;
if(sum>20){
System.out.println("和大于20了,当前数是" + num);
break;
}
}
System.out.println("当和第一次大于20时,当前数是" + num);
System.out.println(sum);
}
}
方法2 :重新定义变量j,将num的值赋给j,最后输出j即可。
public class breaknote{
//编写一个main方法
public static void main(String[] args){
int sum = 0;
int j = 0;
for(int num = 1; num <= 100; num++){
sum +=num;
if(sum>20){
System.out.println("和大于20了,当前数是" + num);
j = num;
break;
}
}
System.out.println("当和第一次大于20时,当前数是" + j);
System.out.println(sum);
}
}
第二题:
实现登录验证,有 3 次机会,如果用户名为"丁真" ,密码"666"提示登录成功,否则提示还有几次机会,请使用 for+break完成
思路分析:创建Scanner语句用来输入名字和密码
定义变量 String name 和String password用来输入用户名和密码
if else语句来判断
import java.util.Scanner;
public class breaknote02{
//编写一个main方法
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
for(int i = 1; i <= 3; i++){
System.out.println("请输入您的用户名");
String name = sc.next();
System.out.println("请输入您的密码");
String password = sc.next();
if("丁真".equals(name) && "666".equals(password)){
System.out.println("用户名和密码正确,登录成功");
break;
}else{
System.out.println("您的输入有误,还有" + (3-i) + "次机会");
}
}
}
}
tips:字符串之间比较是否相等不用==,用equals(); 比如:"丁真".equals(name);"林黛玉".equals(name)
在登录成功后,如不用break,编译后则会出现以下情况,会执行完整个for循环,所以需要break,跳出for循环
与老师代码不同的地方:定义int型变量chance = 3;
import java.util.Scanner;
public class breaknote02{
//编写一个main方法
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int chance = 3;
for(int i = 1; i <= 3; i++){
System.out.println("请输入您的用户名");
String name = sc.next();
System.out.println("请输入您的密码");
String password = sc.next();
if("丁真".equals(name) && "666".equals(password)){
System.out.println("用户名和密码正确,登录成功");
break;
}else{
chance--;
System.out.println("您的输入有误,还有" + chance + "次机会");
}
}
}
}