1.顺序结构
- 是程序默认的执行流程
- 从上往下进行
2.分支结构
if语句:运用于某些代码在某些场景中才能使用
变量的生命周期:变量只在所属的大括号中有效,即输出变量结果时若是变量定义在大括号内,而输出在大括号外,则会报错因为变量只在大括号内有效,出了大括号就会消失,所以变量定义要在大括号外,输出在大括号内或外皆可,另外,若在大括号内定义变量并且输出,在括号外定义相同变量并且输出,运行结果是两者皆输出,因为大括号内的运行完后脱离大括号就消失了,不会影响外面的变量的运行,但如果外面没有定义变量直接输出,则会报错,因为大括号内的变量出了大括号就会消失。
eg.:
1)if语句第一种
- 格式:
if(关系表达式)
{
语句体;
}
- 练习:
- 细节1:在C语言中,如果判断的结果是一个数字,非0表示条件成立,0表示条件不成立,
不成立则不执行大括号内的内容,成立才执行
eg.:
- 细节2:如果大括号里面的语句体只有一行,那么大括号可以省略不写
2)if语句第二种
- 格式:
if(关系表达式)
{
语句体A;
}else{
语句体B;
}
- 练习与应用:
注意细节:==是判断,=是赋值
3)if语句格式第三种
- 格式:
if(关系表达式)
{
语句体A;
}
else if(关系表达式)
{
语句体B;
}
else if(关系表达式)
{
语句体C;
}
……
else
{
语句体N;
}
- 练习:
另外:if语句也可嵌套使用
例如:
将不同的选择一一列举出来,再根据不同的条件任选其一
4)switch语句
- 格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值1:
语句体2;
break;
……
default:
语句体n;
break;
}
细节:
- 表达式不能是判断语句,必须是能计算出结果的
- 表达式计算结果只能为字符或整数
- 每个case的值只能是字符或整数的字面量,且不能重复
- break表示中断,结束的意思
- default是在所有情况都不匹配时执行
- switch语句执行有限,if语句执行范围大,但是在有限时执行switch效率更高
- case穿透:如果在执行的过程中,遇到了break,那么直接结束整个switch,但是如果没有遇到break,就会继续执行下面case中的代码,前提是从case定义了数值的那部分开始,直到遇到break,或者把整个switch中所有的代码全部执行完了,才会结束
- 另外,case会一直往下穿运行,所以若是将default放到运行的case值前面,就不会运行,但如果number值在case中不存在,超出范围,则会运行放在case值前面的default
eg.:
- 运用:
3.循环结构
分为三种:for,while,do…while
1)for语句:循环重复某件事情
- 格式:
for(初始化语句;条件判断语句;条件控制语句)
{
循环体语句;
}
- 运用:
- 练习:
ps:若是将此处大括号外的变量定义和输出都放到了大括号里面,那么每次sum都会从0开始,所得到的结果就会是累加的结果,故最后的结果会是100
综合运用:
流程分析:
- 首先执行初始化语句
- 然后执行条件判断语句进行判断
- 若条件成立就执行循环体语句,不成立循环结束
- 如果循环继续,就执行条件控制语句
- 然后再进行条件判断语句
- 然后进行判断,以此类推
比如题目:
2)while语句
- 格式:
初始化语句;
while(条件判断语句)
{
循环体语句;
条件控制语句;
}
eg.:
- for和while的相同点:运行规则一样
- for和while的区别:
for循环中:知道循环次数或者循环的范围
while循环:不知道循环的次数和范围,只知道循环的结束条件。
综合运用:
如果初始化语句写在循环里,那么每次都会从0开始,写在外面才能累加
- 此处是直接利用无限循环加上break的终止直接运行
3)do …while
初始化语句;
do
{
循环体语句;
条件控制语句;
}while(条件判断语句);
- 先执行后判断,循环体至少循环一次,而且当循环结果不符合while中的判断结果就会直接跳出,结束程序的进行,但在结束之前是已经循环了一次,因为是从上往下执行,循环在前,判断在后,但是条件控制句不会执行,因为循环的是循环体语句
- ps:循环体是循环现在要做的事,条件控制语句是控制循环进行的