一、顺序结构
自上至下,自左至右依次执行。
二、分支结构
当程序执行到某个位置时,程序后序的执行方向由某个条件决定,多选其一。
1.if分支
1.1 if简单分支
注意:1.if可以单独使用,但是else不能单独使用;
2.{}语法上可以省略,但if语句后只能接一条语句。推荐加上{},可读性更高,可以接更多语句,适用范围更广。
3.if ()后不能加‘;’
if (逻辑值)
{
语句块1;
}
else
{
语句块2;
}
1.2 if阶梯分支
注意:1.if可以单独使用,但是else if、else不能单独使用;
2.if ()、else if()后不能加‘;’
3.{}语法上可以省略,但if语句后只能接一条语句。推荐加上{},可读性更高,可以接更多语句,适用范围更广。
4.阶梯的判断顺序,一般根据实际场景下,不同情况下出现的概率进行递减的排序。
if (逻辑值)
{
语句块1;
}
else if (逻辑值)
{
语句块2;
}
else if (逻辑值)
{
语句块3;
}
...
else
{
语句块n;
}
1.3 if嵌套分支
注意:1.嵌套最好不超过三层,阅读不太方便。
2.当if分支内没有{},else、else if会向上匹配遇到的第一个并且结合后符合语法的if结合起来。
if (逻辑值)
{
if (逻辑值)
{
if (逻辑值)
{
}
}
}
else
{
}
2.switch分支
注意:1.num的值,必须是一个整形
2.case后:必须是一个整形常量(需要的是一个确定的值),值不能相等
3.break一般情况下不能漏写
switch(num)
{
case 0:
(语句);
break;
case 1;
();
break;
...
case n;
();
break;
deflaut;
}
三、循环结构
当程序执行到某个位置时,程序会反复执行某段代码,直到循环满足退出条件。
适用情况:1.执行重复的代码
2.执行有规律的代码
3.暴力穷举
循环三要素:
1.循环体:需要重复执行的逻辑代码
2.结束条件:循环在什么时候结束
3.推动循环趋向结束的代码。
1.for循环
1.1 基本形式
注意:1.表达式1、表达式2、表达式3之间使用‘;’隔开
2.for()后不要加分号
3.for( ; ;)不写时默认死循环
表达式1:初始化,进入循环之前的准备工作
表达式2:循环结束条件:决定循环在什么时候退出
表达式3:循环变量改变:推动循环趋向结束的代码
执行过程:运行表达式1,运行表达式2(若其值为真,则执行for语句中指定的内嵌语句,然后执行第三步;若其值为假,则结束循环,执行循环后的操作),运行表达式3,转回执行表达式2,循环结束,执行for'语句后 的语句。
for (表达式1;表达式2;表达式3)
{
语句块;
}
1.2 嵌套形式
外层循环一次,内层循环一遍
举个例子:打印一份九九乘法表,表从左下,右下,右上
for (表达式1;表达式2;表达式3)
{
for(表达式a;表达式b;表达式c)
{
语句块A;
}
}
2.while循环
注意:1.for循环 可以和while循环等价转换;
2.当不明确循环执行的次数或循环的上下限时,一般使用for循环
当不明确循环执行的次数或循环的上下限,但是明确循环结束时的状态时,一般使用while循环。
3.while()后不能接‘;’
while (表达式1(逻辑值))
{
语句块A;
}
3.do ... while 循环
注意:1.先执行一次循环体,再去判断结束条件
2.循环的结束条件要依赖循环体的执行结果
例子:用do while写一个大小写字母转换,并且输入‘q'和’Q‘时退出
do{
语句块A;
}while(表达式1);
4.利用goto实现的循环(禁止使用goto(出错处理)执行循环,可读性差)
goto:1.可以跳转到程序的任意位置开始执行
2.过度使用goto语句,会严重破坏程序的逻辑结构,极大降低可读性。
四、辅助控制
1.break
1)在switch语句中,用来作为某个case:的出口,跳出switch语句
2)在循环体内,跳出离它最近的循环
2.continue
1)在循环体内执行时,短路当次循环体的后续执行
3.return
1)函数结束返回执行结果