C语言是一门结构化的程序设计语言,里面包含三总结构
1.顺序结构
2.选择结构
3.循环结构
就后面两种C语言给出了对应的分支循环语句
1.分支语句 (选择结构)
什么是语句?:C语言中用分号隔开的就是一条语句
if语句
- if 语句格式:
if (表达式)
语句1
else
语句2
如果有多个判断条件可以用else if(表达式)
如果执行语句里面有多条语句要用代码块{}
- if 语句常见案例
1.悬空else
上面的代码什么都没有输出 为什么呢? 因为if只与最近的未匹配的else匹配,当a==2为假是直接跳到return 0结束
所以在写代码时一定要有好的代码风格,不要乱写!!!
- 赋值与判断
大家可以看看这个代码运行的结果是什么
代码运行结果是“帅哥”,原因是“=” “==”前者是赋值后者是判断相等,而赋值后表达式的返回值是1,即真,所以以上if语句执行的是输出"帅哥"
在编辑时将5写左边a写右边就可以避免这个问题——因为a压根就没法赋值给5,到这时候你就知道写错了
switch语句
当if语句有多个条件需要判断时,多个else if 就显得繁琐,这时候我们就可以使用switch case 语句
- switch语句语法结构
switch(整形表达式)
{case 整形常量表达式:
语句1;
case 整形常量表达式:
语句2;
case 整形常量表达式:
语句3;
case 整形常量表达式:
语句4;
…
}
上面输出的结果是“小笼包 水饺 麻辣烫 刀削面”显然不是我们想要的,这是因为在case语句中没有写break——它的作用是终止switch语句。switch语句中没有continue
注意到switch语句的最后有一个default——这个是为了避免一些非法值的出现,功能类似于else对于其余剩于情况的处理,不同的是case 和 default并没有先后之分,你可以把case写在default的后面
当然也不是每条case语句的后面都需要加上break
- switch语句的套用:
循环语句 (循环结构)
while语句
- while语句的语法结构
while(表达式)
{
循环体
} - while语句写出1-100之间的偶数
- while语句里的break和continue
- while小游戏之学我说话
可以看到在最后输入EOF是循环并没有停止——这是因为getchar是一个一个接受字符的,一次一个字符打印
要想结束这个程序利用ctrl+z可以输入EOF——end of file
- 利用while语句清空输入缓冲区
可以看到当我们输入密码后回车,并没有按照预期的再次输入Y/N,而是直接提示输入失败,要解决这个问题要先了解输入缓冲区这个概念
所以为了使程序在执行getchar时都停顿等待我们输入,就要利用while循环清空输入缓冲区
for循环
建议:
1.尽量不要在循环体内修改变量,否则会造成死循环
2.尽量采取前闭后开的形式,这样会使参数更有意义
3.在不熟练的情况下不要轻易初始化、判断、调整语句!!!
- for循环的语法结构
for(表达式1;表达式2;表达式3)
循环语句;
表达式1——初始化
表达式2——判断
表达式3——调整
- 利用for输出1-10的数字
- for循环里面的break与continue
- for循环的变种
- 省略初始化、判断、调整
当判断语句省略时for循环的判断结果恒为真,使得循环编程死循环
for内的变量可以时多个
当判断语句是"b=0"这个赋值语句时,其返回值为假,所以上面代码的循环一次未执行
do while语句
- do while的语法结构
do
循环语句
while(表达式)
它不同于while语句是把循环语句拿到判断语句的前面,就是先做再判断,无论如何至少执行一次
- do while语句的break与continue