今天学习的主要内容是分支结构和循环结构,用这两种结构可以实现选择和循环的功能。
一、分支结构
昨天学习了最简单的if结构后,今天我们学习其他几种分支机构。
1.阶梯分支
示例:
if (表达式1)
{
语句块1;
}
else if (表达式2)
{
语句块2;
}
else if (表达式3)
{
语句块3;
}
else
{
语句块4;
}
当表达式成立时,执行对应分支的语句块,一般可以留最后一个else作其他综合情况的处理方案。
2.嵌套分支
示例:
if (表达式1)
{
语句块1;
if (表达式2)
{
语句块2;
if (表达式3)
{
语句块3;
}
}
}
嵌套分支可以进行进一步的选择,但是如果嵌套层数过多,代码的可读性会大幅下降,修改起来也更麻烦。
3.switch分支
示例:
switch (整形表达式)
{
case 常量1:语句块1;break;
case 常量2:语句块2;break;
case 常量3:语句块3;break;
default:
语句块4;
}
当整形表达式与常量相同时,系统会跳转到对应的case处,执行对应的语句块。
注意事项:
1.switch后面的表达式的值必须为整形
2.case后面必须为常量,不能是变量或表达式
3.switch只与case后面的值比一次,如果相同则顺序向下执行,直到break或程序结束退出
4.switch的工作逻辑是“跳转到case X的位置,执行剩下的语句,直到最后或遇到break为止”。因此,若语句块后没有加break,会顺序执行下方的语句块。由此原理,也可以通过故意不加break来同时执行多种语句块。
5.switch语句也可以有嵌套结构, 里层switch结束后如果不加break,外层switch顺序向下执行
二、循环结构
1. while 循环
1.基本形式
while (表达式)
{
语句块1;
}
当满足表达式逻辑值为真,重复执行语句块1。
如果表达式中恒为真值,while循环将会一直重复,直到程序被人为操作停止。
2.do...while循环
示例:
do {
语句块;
} while (表达式);
注意事项:
1.do .. while后面要加“;”
2.do while无论表达式是否成立都会先执行一次
3.do while和while不能等价转换
3.for循环
示例:
for (A; B; C)
{
D;
}
A:在循环前执行一次
B:循环的条件
C:每次循环结束后都执行C
D:循环体内部代码