目录
任何一个程序都是有顺序结构、选择结构、循环结构这三种结构组合而成
C语言通过关系运算和逻辑运算来构造选择判断的条件。
关系运算符:
关系表达式的结果在C语言中用int型来记录,用非0和0来表示真和假
注意 : 0<a<5 ---((0 < a )< 5)//与数学上的运算有所不同
逻辑运算符:&&(与) || (或) !(非)
&&:一假则假 --- 短路特性
|| :一真则真 ---短路特性
!:真假相对
一、选择结构
1.if 语句
(1)单分支 --- 处理单个情况
语法形式:
if (表达式) ---- 后面没有分号!
{
语句 //复合语句
}
语义:如果,表达式 为真 则 执行 语句, 表达式 为假 表示if语句结束。
流程图:
(2)双分支 --- 处理两种情况
语法形式:
if (表达式)
{
语句1
}
else
{
语句2
}
语义:如果 ,表达式为真 执行 语句1,表达式为假,执行 语句2
流程图:
(3)多分支 --- 处理多种情况
语法:
if (表达式1)
{
语句1;
}else if (表达式2)
{
语句2;
}else if ...
....
{
}else
{
}
语义:判断表达式1,若为真,执行语句1,若为假,则继续往下判断表达式2,依次类推
流程图:
补充:条件运算
语法:表达式1 ? 表达式2 :表达式3
含义:判断表达式1,若为真,执行表达式2;若为假,执行表达式3
2.switch语句
语法:
switch (表达式) // 表达式是一个 值
{
case 常量表达式1:
语句1
break;
case 常量表达式2:
语句2
break;
case 常量表达式n:
语句n
break;
default
语句n+1
}
语义:求解 表达式 ,用表达式结果 ,与 下面case 后的常量表达式的结果 进行匹配
若匹配成功,则执行对应case下的语句,直到遇到了break 或者是 遇到了 switch 语句 '}' (右花括号)则结束。
举例流程图:
注意:switch后面的表达式,必须是一个整型表达式,浮点型不行,也不能是变量。
default可以不放在最后面,但是此时后面需要加上break;否则程序将不会对case进行匹 配,而继续执行case中的语句。
二、循环结构
1.goto语句
goto语句实际上并不是循环,而是起到一个跳转的作用。
语法:goto 标签 // 在想要跳转的地方放一个标签,遇到goto,就能跳转,但是一般不怎么使用。
2.while语句
构成循环的要素:
(1)循环体 //反复被执行的代码
(2)结束条件
(3)使循环趋于结束的操作(或语句)
(4)循环的初始条件
语法:
while 语句
语法:
while (表达式) //注意后面没有分号
{
语句(循环体)
}
语义:判断表达式,若为真,执行语句 ;语句执行玩之后,继续判断表达式,重复上面的操作,直到表达式为假;若为假,while 结束,程序继续往下。
流程图:
3.do while语句
语法:
do
{
语句;
}while (表达式); //注意这里有分号
语义:先执行语句,然后判断表达式。若为真,继续执行语句,然后判断,重复这个过程,直到 表达式为假,do-while 语句结束;若为假,则do-while 结束,程序继续往下。
流程图:
对比while 和do - while :while先判断后执行,do-while先执行后判断,因此do-while里面的循环至 少会被执行一次。
4.for循环
语法:
for (表达式1;表达式2;表达式3)
{
循环体语句;
}
注意:for语句后面没有分号。
语义:s1 求解 表达式1,
s2 判断 表达式2,
s3 真, 则 执行 循环体语句 执行完之后,
s4 求解 表达式3
求解完之后,继续判断表达式2
重复 s2 到 s4
直到 s2 判断为假,for循环结束
根据循环的四要素,可以归纳出以下语义:
for (初始条件 ;循环条件(循环结束条件);使循环趋于结束语句)
{
循环体语句;
}
注意:for 循环的三个表达式都可以省略,但是对应的循环要素不能省;
若表达式2省略 ,表示循环条件永远为真 。
流程图:
选用:
1.for //多用于 有一定范围
while
do-while //多用于 只有某个结束条件的
补充:break 和 continue
(1)break 语句 :
break 可以用在 switch ,循环 while , do-while ,for
作用: 用在循环中 ,表示跳出 本层循环。
(2)continue 语句
只用在循环中
作用:结束本次循环,继续下一次循环。