目录
1、定义:可以一直执行下去的一种循环,如果没有干预不会停下来
一、switch
1、定义:通过比较值来决定执行哪条分支
2、流程
Ⅰ:先执行switch括号中表达式的值
Ⅱ:再执行与这个值与case后面值匹配的代码
Ⅲ:如果与case后面的值都不匹配则执行default后面的代码
3、与if相比哪个好
相对来说,if的功能强大于switch,但是因为需求的关系可以选择适合的方法。
比如: if适合做区间的判断。 例:0~100之间怎么怎么样
switch适合做比较值的判断。例:a == 1要干什么,a == 2要干什么就可以使用 switch
4、注意事项
①:表达式类型支持 1、基本数据类型:byte、short、int、char
2、引用类型:String
不支持boolean|、float、double、long
②:case的值不能重复,也不能是变量,只能是常量
③:使用switch时记得加break,不然执行完这条语句不管下面的值和case匹不匹配都会执行,也就是穿透
④:对于case穿透的特性其实可以使用在相对应的需求中,例:周一到周五上班
周六周天休息
⑤:表达式里面是什么类型,case就要是什么类型
二:for
1、定义:控制一段代码重复执行多次
2、作用:减少代码的重复编写,灵活控制程序的运行
3、格式
快捷键(fori)
4、流程
注意:初始化语句只会执行一次
5、debug来查看流程
6、使用场景
Ⅰ:求1~100的和
public static void main(String[] args) {
//累加求和的思想:定义一个变量,每次相加都存储到这个变量中
int sum = 0;
//循环1~100 可以使用快捷见100.fori
for (int i = 1; i <= 100; i++) {
//循环进来一次就sum就+一下i
sum += i; //sum = sum + i;
}
//退出循环表示sum已经完成了1~100的和,输出即可
System.out.println(sum);//5050
}
Ⅱ:求1~100的奇数和
public static void main(String[] args) {
//需求:得出1-100的奇数和
//创建一个变量来存储和的值
int sum = 0;
//使用循环获得1-100的值
for(int i = 1;i<100;i++){
//判断i对2取余是否为0,不为0表示是奇数
if(i % 2 != 0){
//将sum加上i
sum += i; //sum = sum + i;
}
//不为0表示不是奇数,将i加1,继续判断
}
//直到退出循环,然后打印sum的值
System.out.println(sum);
}
三:while
与for循环的区别就是格式不一样
1、格式
2、流程
Ⅰ:先执行判断条件
Ⅱ:判断条件为真在执行循环语句和迭代语句
Ⅲ:为假结束循环
3、练习
while循环版
for循环版
public static void main2(String[] args) {
//需求需求:世界最高山峰珠穆朗玛峰高度是:8848.86米=8848860毫米,假如我有一张足够大的纸,,
// 它的厚度是0.1毫米。请问:该纸张折叠多少次,可以折成珠穆朗玛峰的高度?
//用double类型存储珠峰高度
double height = 8848860.0;
//用double来存储纸张厚度
double paper = 0.1;
//定义一个int类型的值来存储折叠次数
int count = 0;
while(paper < height){
//System.out.println(paper);
//当纸张厚度小于珠峰时,将纸折叠,也就是*2
paper *= 2;
count++;
}
System.out.println(count);
}
public static void main(String[] args) {
int count = 0;
for(double paper = 0.1; paper < 8848860.0;paper *= 2){
count++;
}
System.out.println(count);
}
四:do_while
1、格式
2、特点
先执行循环体,在判断(无论如何都会执行一次循环体)
3、流程
循环小结:
①:for循环和 while循环(先判断后执行); do.. .while先执行后判断)
②:for循环和while循环的执行流程是一模一样的,功能上无区别,for能做的while也能做,反之亦然
③:使用规范:如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议使用while循环。
五:死循环
1、定义:可以一直执行下去的一种循环,如果没有干预不会停下来
2、演示
六:break、continue关键字
1、break
①:作用:跳出并结束当前所在循环
②:示例
③:练习
public static void main3(String[] args) {
//需求:系统密码是520,请用户不断的输入密码验证,验证不对输出:密码错误,验证成功输出:欢迎进入系统,并停止程序。
//需要用户输入我们就需要导包和创建对象
Scanner scanner = new Scanner(System.in);
//提示一下让用户输入密码
System.out.println("请输入密码");
//创建一个无限循环来让用户输入密码,
while(true){
//创建一个变量来存储用户接受的密码,不正确继续输入,正确就退出循环
int passWord = scanner.nextInt();
if(passWord == 520){
System.out.println("欢迎进入系统!!");
break; //退出循环
}else{
//提示一下输入错误,让用户重新输入
System.out.println("密码输入错误,请重新输入!!!");
}
}
}
//for循环版
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入密码");
for (;;){
if(scanner.nextInt() == 520){
System.out.println("欢迎进入系统!");
break;
}else{
System.out.println("输入错误,重新输入");
}
}
}
2、continue
①:作用 结束本次循环,继续下次循环
②:示例
public static void main(String[] args) {
//需求: 打印0-10之间的值,不打印5
//先创建一个for循环,i = 0 ; i < 10
for(int i = 0; i < 10;i++){
//判断i 是否等于 5
if(i == 5){
//等于5跳出循环
continue;
}
//输出i的值
System.out.print(i + " ");
}
}
总结:
break:跳出并结束当前所在循环
continue:跳出此次循环执行下次循环
注意事项:
break使用范围:循环中和结束switch分支
continue使用范围: 只能在循环中