目标:
- 程序结构介绍
- 选择流程控制语句
- 循环流程控制语句
课程内容
1. 程序结构介绍
结构化程序有3种流程结构:
1.顺序结构
2.选择结构(分支结构)
3.循环结构
程序结构是指程序的执行流程。尽管现实世界的问题是复杂的、千变万化的,但与之相对应的计算机算法流程只有上述三种结构。它们可以解决全部的问题,任何一种编程语言都具备上述三种流程结构。
顺序结构
当没有任何有关流程控制的语句时,程序默认的执行顺序,从上而下,一行一行执行。
选择结构
程序在自上而下依次执行时,可以通过条件判断,选择性的执行某一段代码。
若条件P为真,则执行A,否则执行B
循环结构
若条件P为真,则执行循环体代码,执行一次完毕后,再次判断条件P是否为真,若为真则执行循环体代码,重复上面的过程,直到P为假,退出循环
2.选择流程控制
分支语句实现程序选择控制的功能 ,即根据一定的条件有选择地执行或跳过特定的语句
2.1 if分支
2.1.1 if单分支
语法:
if(boolean表达式) {语句块}
举例:
byte age = 2;
if (age >= 18) {
System.out.println("成年人");
}
2.1.2 if…else双分支
语法:
if(boolean表达式) {语句块A} else {语句块B}
举例:
byte age = 2;
if (age >= 18) {
System.out.println("成年人");
} else {
System.out.println("未成年");
}
2.1.3 if…else if…else多分支
语法:
if(表达式1) {语句块1}
else if (表达式2) {语句块2}
else if (表达式3) {语句块3}
… …
else if (表达式n) {语句块n}
else {语句块n+1}
注意:
- else if 可以有多个,也可以没有
- else 可以有,可以没有
- else if 之间存在逻辑顺序,大小范围不可混乱
举例:
byte age = 10;
if (age > 0 && age <= 3) {
System.out.println("婴幼儿");
} else if (age > 3 && age <= 8) {
System.out.println("孩童时期");
} else if (age > 8 && age <= 15) {
System.out.println("青少年");
} else if (age > 15 && age <= 30) {
System.out.println("青年");
} else if (age > 30 && age <= 50) {
System.out.println("中年");
} else {
System.out.println("中老年");
}
2.2 switch分支
语法:
switch (要进行判断的变量) {
case 具体数值1:
当变量的值和数值1相等时,执行
break;
case 数值2:
当变量的值和数值2相等时,执行
break;
default:
当变量的值和以上所有数值都不相等时,执行
相当于else
break;
举例:
int day = 1;
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;
default:
System.out.println("周末");
break;
}
注意:
1. 表达式expr的值必须是以下几种类型之一:char,byte,short,int,enum;
java7之后可以是String。
不能用boolean,long,float,double等其他类型。
2. 所有case子句中的值不能重复,否则编译出错
3. default子句是可选的
4. break语句用于执行完一个case分支后跳出switch语句块;如果没有,造成case贯穿
if和switch的异同:
if和switch都可用于分支判断
switch结构只能处理等值条件判断的情况
if结构适合某个变量处于某个连续区间时的情况
总结:
- Java中的if选择结构,包括以下形式
- 基本if结构:可以处理单一条件的情况
- if-else结构:可以处理双分支分支情况
- 多重if结构:可以处理多分支情况
- 嵌套if结构:可以处理复杂的条件-分支情况
- switch选择结构适用于等值判断的情况
- 在实际应用中,通常会使用多种形式选择结构综合来解决较复杂的问题
3.循环流程控制
循环语句功能:在循环条件满足的情况下,反复执行特定代码
-
循环语句的四个组成部分
- 初始化部分:对循环变量赋初值
- 循环条件部分:判断循环变量是否超出某个界限
- 循环体部分:要循环执行的具体代码
- 迭代部分:修改循环变量的值
-
循环语句分类
- for 循环
- while 循环
- do/while 循环
3.1 while循环
语法结构:
while (boolean表达式){
循环体;
迭代变量; // 注意:不能缺少,造成死循环
}
执行流程:首先判断boolean表达式,若值=true,则执行循环体,改变迭代变量,再判断boolean表达式。依此重复,直到值=false,循环结束
举例及练习:
- 在控制台上输出1到10
- 计算1—100所有偶数之和(使用while实现)
月薪 8k,每年给涨 20%,多少年能够超过月薪 2w
3.2 do…while循环
语法结构:
[初始条件]
do{
循环体;
[迭代]
}while( 循环条件判断);
执行流程:首先执行循环体,改变迭代变量,再判断循环条件,若值=true,则继续执行循环体。依此重复,直到值=false,循环结束。
区别:
while 循环:先判断,再执行
do-while循环:先执行,再判断。至少执行一次
举例及练习:
1.计算1—100之和
- 之前的练习,可以改造成do…while
3.3 for循环
语法结构:
for ([循环变量初始值]; [循环条件判断]; [迭代循环变量]){
循环体
}
for(表达式1; 表达式2; 表达式3) {循环体}
执行流程:首先执行表达式1,接着判断表达式2,若值=true,则执行循环体,执行完成循环体中所有代码后,再执行表达式3,然后判断表达式2。依此重复,直到表达式2的值=false,循环结束
举例及练习:
1.计算1—100的和
2.计算1—100所有偶数
3.计算1—10的积
总结区别:
while 循环:先判断,再执行
do-while循环:先执行,再判断
for循环:先判断,再执行
使用情况:
循环次数确定的情况,常选用for循环
循环次数不确定,或为某一条件时,常选用while或do-while循环
4.课后作业
- 计算某年某月有几天
- 打印出九九乘法表
- 打印右上角为直角的*三角形
- 计算1!+2!+3!+…+10!
- 个税计算器
总练习:if判断年龄段、if计算个税
for打印0-100偶数和、for打印乘法口诀表、for打印三角形
预习
1、练习,练习,再练习。
2、数组。