流程控制
-
switch-case
与 if 不同的是,switch-case 只能完成等值判断,而无法完成判断大小。
如果是判断两个值是否相等,可以使用 switch-case,如果比较两个值的大小关系,则不能使用 switch-case。
switch 支持 int、short、byte、char、枚举、String 类型,不支持 boolean 类型。
基本语法
switch(变量){
case 值1:
//业务代码
break;
case 值2:
//业务代码
breka;
...
default:
//业务代码
break;
}
case 判断变量是否等于某个值,default 表示所有的 case 都不成立的情况下所执行的代码。
-
1 奖励 2000
-
2 奖励 1000
-
3 奖励 500
-
否则没有奖励
public static void main(String[] args) {
int placing = 1;
if(placing == 1) {
System.out.println("奖励2000元");
}else {
if(placing == 2) {
System.out.println("奖励1000元");
}else {
if(placing == 3) {
System.out.println("奖励500元");
}else{
System.out.println("没有奖励");
}
}
}
switch(placing) {
case 1:
System.out.println("奖励2000元");
break;
case 2:
System.out.println("奖励1000元");
break;
case 3:
System.out.println("奖励500元");
break;
default:
System.out.println("没有奖励");
break;
}
}
循环
for、while、do-while、foreach
循环四要素:
-
初始化循环变量
-
循环条件
-
循环体
-
更新循环变量
while
初始化循环变量
while(循环条件){
循环体
更新循环变量
}
//初始化循环变量
int num = 0;
//循环条件
while(num < 10) {
//循环体
System.out.println("Hello World");
//更新循环变量
num++;
}
int num = 0;
String flag = "y";
while(flag.equals("y")) {
System.out.print("请输入学生学号:");
Scanner scanner = new Scanner(System.in);
int id = scanner.nextInt();
switch(id) {
case 1:
System.out.println("张三的成绩是96");
break;
case 2:
System.out.println("李四的成绩是91");
break;
case 3:
System.out.println("王五的成绩是89");
break;
default:
System.out.println("请输入正确的学号");
break;
}
System.out.print("是否继续?y/n");
flag = scanner.next();
}
System.out.println("感谢使用学生成绩查询系统");
do-while
//初始化循环变量
int num = 0;
do {
//循环体
System.out.println("Hello World");
//更新循环变量
num++;
}while(num<10);
//循环条件
Scanner scanner = new Scanner(System.in);
String result = "";
do {
System.out.println("张三参加体能测试,跑1000米");
System.out.print("是否合格?y/n");
result = scanner.next();
}while(result.equals("n"));
System.out.println("合格,通过测试");
for
for(初始化循环变量;循环条件;更新循环变量){
循环体
}
for(int num = 0;num < 10;num++) {
System.out.println("Hello World");
}
while、do-while、for 3种循环的区别
-
相同点:都遵循循环四要素,初始化循环变量、循环条件、循环体、更新循环变量。
-
不同点:
-
while 和 do-while 适用于循环次数不确定的业务场景;for 适用于循环次数确定的场景。
-
while 和 for 都是先判断循环条件,再执行循环体;do-while 先执行循环体,再判断循环条件。
-
分别使用 while、do-while、for 循环输出 10 以内的所有奇数。
//while循环
int num = 0;
while(num <= 10) {
if(num%2!=0) {
System.out.println(num);
}
num++;
}
//do-while循环
int num = 0;
do {
if(num%2!=0) {
System.out.println(num);
}
num++;
}while(num <= 10);
//for循环
for(int num = 0;num <= 10;num++) {
if(num%2!=0) {
System.out.println(num);
}
}
for 循环只适用于循环次数确定的场景下(for 也可以适用于循环次数不确定的场景,只不过一般不会用这种方式进行开发),while 和 do-while 循环次数确定或者不确定都可以使用。
String result = "n";
for(;result.equals("n");) {
System.out.println("张三参加体能测试,跑1000米");
System.out.print("是否合格?y/n");
result = scanner.next();
}
System.out.println("合格,通过测试");