目录
1.顺序结构
顺序结构是程序控制结构中的一种基本形式。在顺序结构中,程序按照从上到下的顺序依次执行每一条语句。这意味着程序的执行路径是线性的,不会有跳转或重复。
1.1特点:
- 线性执行:程序的每一条语句在前一条语句执行完成后才会被执行。
- 简单明了:因为没有复杂的跳转或循环,顺序结构是最基础且最容易理解的控制结构。
1.2示例:
假设我们用伪代码描述一个简单的顺序结构程序:
plain textCopy Code
开始
输入数字A
输入数字B
计算A + B
输出结果
结束
在这个示例中,程序首先输入两个数字,然后计算它们的和,最后输出结果。每一步都是在前一步之后执行的,这就是顺序结构的典型特点。
2.分支结构
2.1 If分支
If的三种格式:
- 基本格式:
if 条件: 语句块
在条件为真时执行语句块。
if-else
格式:if 条件: 语句块1 else: 语句块2
在条件为真时执行语句块1,否则执行语句块2。
if-elif-else
格式:if 条件1: 语句块1 elif 条件2: 语句块2 else: 语句块3
根据条件1或条件2的真伪执行不同的语句块,若都不满足,则执行语句块3
2.2 switch分支
2.2.1 switch分支结构:
switch(表达式){ case 值1: 执行代码...; break; case 值2: 执行代码...; break; … default: 执行代码n;}
2.2.2switch分支的执行流程:
- 先执行表达式的值,再拿着这个值去与case后的值进行匹配。
- 与哪个case后的值匹配为true就执行哪个case块的代码,遇到break就跳出switch分支。
- 如果全部case后的值与之匹配都是false,则执行default块的代码。
2.2.3 if、switch的比较:各自适合什么业务场景?
- if在功能上远远强大于switch。
- 当前条件是区间的时候,建议使用if分支结构来实现
- 当条件是与一个一个的值比较的时候,建议用switch更合适(格式良好,性能较好,代码优雅)。
2.2.4switch分支结构的几点注意事项:
- 表达式类型只能是byte、short、int、char,
- JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long。
- case给出的值不允许重复,且只能是字面量,不能是变量。
- 正常使用switch的时候,不要忘记写break,否则会出现穿透现象。
3.循环结构
3.1 for循环
3.1.1for循环格式:
for (初始化语句; 循环条件; 迭代语句) { 循环体语句(重复执行的代码); }
3.1.2例子:
输出3次Hello World
for (int i = 0; i < 3; i++) { System.out.println("Hello World"); }
3.1.3 for循环案例:求水仙花数:
public class waterFlower { public static void main(String[] args) { getWaterFlower(); } public static void getWaterFlower() { int count = 0; for (int i = 100; i <= 999; i++) { int ge = i % 10; int shi = i / 10 % 10; int bai = i / 100; if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) { System.out.print(i + "\t"); count++; if (count % 2 == 0) { System.out.println(); } } } } }
3.2 while循环
3.2.1 while循环格式
初始化语句; while (循环条件) { 循环体语句(被重复执行的代码); 迭代语句; }
3.2.1 例子
int i = 0; while (i < 3) { System.out.println("Hello World"); i++;}
3.2.2 一张纸折几次可以达到珠穆朗玛峰的高度?
需求:世界最高山峰珠穆朗玛峰高度是:8848.86米=8848860毫米,假如我有一张足够大的纸,它的厚度是0.1毫米。请问:该纸张折叠多少次,可以折成珠穆朗玛峰的高度?
public static void main(String[] args) { getPaper(); } public static void getPaper(){ int count = 0; double paper = 0.0001; double height = 8848; while(true){ paper = paper*2; count++; System.out.println("第"+count+"次,厚度为"+paper); if(paper>=height){ System.out.println("需要"+count+"次"); break; } } }