顺序结构
顾名思义,就是按着从上到下的顺序执行代码
public class Demo {
public static void main(String[] args) {
System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
}
}
如果调整代码的书写顺序, 则执行顺序也发生变化
public class Demo {
public static void main(String[] args) {
System.out.println("bbb");
System.out.println("aaa");
System.out.println("ccc");
}
}
上面两个例子,可以让我们更加清晰的了解逻辑结构.
分支结构
if语句
语法格式1(单分支)
if(布尔表达式){
// 语句
}
// if 单分支
int score = 90;
if(score >= 90){
System.out.println("奖励");
}
语法格式2 (双分支)
if(布尔表达式){
// 语句1
} else {
// 语句2
}
如果布尔表达式结果为true,则执行if中语句,否则执行else中语句。
// if 双分支
int score = 50;
if(score >= 90){
System.out.println("奖励");
} else {
System.out.println("奖励大嘴巴子");
}
语法格式3 (多分支)
if(布尔表达式){
// 语句1
} else if(布尔表达式){
// 语句2} else {
// 语句3
}
表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3
// if 多分支
int score = 50;
if(score >= 90){
System.out.println("奖励优秀");
} else if(score >= 50){
System.out.println("奖励良好");
} else {
System.out.println("奖励一般");
}
switch语句
switch(表达式){
case 常量值1: {
语句1;
break;
}
case 常量值2: {
语句2;
break;
}
....
default: {
执行语句;break;
}
}
break 作用:提前结束 switch语句
default 作用:之前的语句都没匹配上,则执行defualt
提示:break 根据自己项目需求 决定是否提前break;
执行流程:
1. 先计算表达式的值
2. 和case依次比较,一旦有相应的匹配就执行该项下的语句,直到遇到break时结束
3. 当表达式的值没有与所列项匹配时,执行default中的语句
示例:根据day的值输入星期
switch(day){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("输入有误");
break;
}
如果 不加 break (则失去分支的效果),那么每个case下的语句都会打印,除非执行途中遇到break或执行到 代码块末尾.
// 示例:根据day的值输出星期
int day = 1;
switch(day){
case 1:
System.out.println("星期一");
case 2:
System.out.println("星期二");
case 3:
System.out.println("星期三");
case 4:
System.out.println("星期四");
case 5:
System.out.println("星期五");
case 6:
System.out.println("星期六");
case 7:
System.out.println("星期日");
default:
System.out.println("输入有误");
}
注意事项:
多个case后的常量值不可以重复
switch的括号内只能是以下类型的表达式:
- 基本类型:byte、char、short、int,(不能是long、double、float、boolean)
- 引用类型:String常量串、枚举类型
循环结构
while循环
语法格式:
while(循环条件){
循环语句;
}
循环条件为 true, 则执行循环语句; 否则结束循环.
int num = 1;
while(num < 10){
System.out.println(num);
num++;
}
break
break 的功能是让循环提前结束.
代码示例: 找到 100 - 200 中第一个 3 的倍数
int num = 100;
while (num <= 200) {
if (num % 3 == 0) {
System.out.println("找到了 3 的倍数, 为:" + num);
break;
}
num++;
}
执行到 break 就会让循环结束.
continue
continue 的功能是跳过这次循环, 立即进入下次循环.
int num = 100;
while (num <= 200) {
if (num % 3 != 0) {
num++;
continue;
}
System.out.println("找到了 3 的倍数, 为:" + num);
num++;
}
结束单趟循环用continue,结束整个循环用break
for循环
语法格式:
for(循环变量初始化 ; 循环条件 ; 循环变量迭代){
循环操作(语句)
}
循环遍历初始化: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
循环条件:是返回一个布尔值的表达式,条件未满足条件则循环继续,否则循环结束
循环操作:可以单条语句,也可以多条语句
执行流程:
循环遍历初始化①,循环条件式②,循环操作③,循环遍历迭代④
①②③④ --> ②③④ --> ②③④ --> ........
示例:输出 1 - 10的 数字
// 输出 1 - 10 的数字
for(int i = 1;i <= 10;i++){
System.out.println(i);
}
结束单趟循环用continue,结束整个循环用break