目录
- 顺序结构
- 分支结构
- if语句
- switch语句
- 循环结构
- for循环
- while循环
- do-while循环
- 循环嵌套与死循环
- break与continue
- 综合案例
- 猜数字游戏
- 验证码生成
- 找素数
1. 顺序结构
代码默认从上到下依次执行。
示例:
public class Test {public static void main(String[] args) {System.out.println("A");System.out.println("B");System.out.println("C"); //输出结果:A B C}
}
2. 分支结构
2.1 if语句
三种形式:
-
单分支
if (条件表达式) {代码块;
}
-
双分支
if (条件表达式) {代码块1;
} else {代码块2;
}
-
多分支
if (条件1) {代码块1;
} else if (条件2) {代码块2;
} else {代码块n;
}
注意事项:
-
若
{}
中只有一行代码,{}
可省略。 -
if()
后不可直接写分号;
,否则逻辑错误。
应用场景:
-
自动驾驶红绿灯判断(布尔变量记录灯状态)。
-
BMI指数健康提示(区间判断)。
2.2 switch语句
语法:
switch(表达式) {case 值1:代码块1;break;case 值2:代码块2;break;default:默认代码块;
}
执行流程:
-
计算表达式值,与
case
值匹配。 -
匹配成功后执行对应代码块,遇到
break
退出。 -
无匹配则执行
default
块。
注意事项:
-
表达式类型:
byte
、short
、int
、char
、String
(JDK7+)。 -
case
值必须唯一且为字面量。 -
穿透性应用:多个
case
共享代码块时可省略break
。
适用场景:
值与多个固定选项匹配时(如菜单选择)。
3. 循环结构
3.1 for循环
语法:
for (初始化; 循环条件; 迭代语句) {循环体;
}
案例:求1-5的和
int sum = 0;
for (int i = 1; i <= 5; i++) {sum += i;
}
System.out.println("和为:" + sum); // 输出15
3.2 while循环
语法:
初始化;
while (循环条件) {循环体;迭代语句;
}
案例:纸张折叠次数
double peak = 8848860; // 山峰高度(毫米)
double paper = 0.1; // 纸张厚度
int count = 0;
while (paper < peak) {paper *= 2;count++;
}
System.out.println("需折叠次数:" + count);
3.3 do-while循环
语法:
初始化;
do {循环体;迭代语句;
} while (循环条件);
特点: 先执行后判断,至少执行一次。
3.4 循环嵌套与死循环
嵌套示例:
for (int i = 0; i < 3; i++) {for (int j = 0; j < 5; j++) {System.out.print("*");}System.out.println();
}
输出:
*****
*****
*****
死循环写法:
while (true) { ... } // 推荐
for (;;) { ... }
4. break与continue
-
break:跳出当前循环或
switch
。 -
continue:跳过本次循环剩余代码,进入下一次迭代。
5. 综合案例
5.1 猜数字游戏
Random r = new Random();
int target = r.nextInt(100) + 1; // 1-100随机数
Scanner sc = new Scanner(System.in);
while (true) {System.out.print("请输入猜测:");int num = sc.nextInt();if (num > target) System.out.println("过大");else if (num < target) System.out.println("过小");else {System.out.println("猜中了!");break;}
}
5.2 验证码生成
String code = "";
Random r = new Random();
for (int i = 0; i < 5; i++) {int type = r.nextInt(3); // 0数字,1大写,2小写switch (type) {case 0: code += r.nextInt(10); break;case 1: code += (char)(r.nextInt(26) + 65); break;case 2: code += (char)(r.nextInt(26) + 97); break;}
}
System.out.println("验证码:" + code);
5.3 找素数
for (int i = 2; i <= 100; i++) {boolean isPrime = true;for (int j = 2; j <= Math.sqrt(i); j++) {if (i % j == 0) {isPrime = false;break;}}if (isPrime) System.out.print(i + " ");
}
总结
-
分支结构:根据条件选择执行路径,
if
适合区间判断,switch
适合固定值匹配。 -
循环结构:控制代码重复执行,
for
适用于已知次数,while
适用于未知次数。 -
实战应用:结合
break
和continue
优化逻辑,灵活处理复杂场景。