🦖作者:学写代码的恐龙
🦖博客主页:学写代码的恐龙博客主页
🦖专栏:【初级c语言】
🦖语录:❀未来的你,一定会感谢现在努力奋斗的自己❀
一:什么是语句?
C语言的语句可以分为以下五类:
- 表达式语句
- 函数调用语句
- 控制语句
- 复合语句
- 空语句
1.1:表达式语句:
这就是一个表达式语句
2+3;
1.2:函数调用语句:
就是调用了函数的那条语句就是函数调用语句
1.3:控制语句:
控制语句用于控制程序的执行流程,以实现程序的各种结构方式
C语言支持三种结构:
1、顺序结构
2、选择结构
3、循环结构
它们由特定的语句定义符组成,C语言有九种控制语句。
可分为以下三类:
1、条件判断语句也叫分支语句:if语句、switch语句;
2、循环执行语句:do while语句、while语句、for语句;
3、转向语句:break语句、goto语句、continue语句、return语句。
1.4:空语句:
一个;就是一条空语句。
;
二:分支语句(选择结构)
2.1:if语句
2.1.1:单分支
if(表达式) 语句;
如果表达式的值为真,就执行下面的语句,否则什么也不干。
输入19,结果是成年
输入15,结果什么也没干
2.1.2:双分支
if(表达式) 语句1; else 语句2;
如果表达式的值为真,就执行语句1,否则执行语句2
输入19,结果是成年
输入15,结果是未成年
2.1.3:多分支
if(表达式1) 语句1; else if(表达式2) 语句2; else 语句3;
表达式1如果为真,就执行语句1,如果为假,则判断表达式2是否为真,如果为真,就执行语句2,否则就执行语句3.
2.1.4:if语句注意事项
2.1.4.1:关于大括号
if或else语句默认只能控制一条语句,如有多条语句要加大括号。这里的大括号叫做一个代码块。
举个栗子:判断年龄是否成年,并规定只有成年了才能谈恋爱。
如果把代码写成下面这样:
此时age=20,成年了可以谈恋爱了,程序的运行结果满足我们的预期。
但当我们输入15时,没有成年,就不能谈恋爱,所以程序应该什么都不输出才对,但实际呢??
输出了谈恋爱,和我们的预期结果有所不同,说明printf(“谈恋爱\n”);这条语句并没有受到if的控制,无论输入什么年龄这条语句都执行了。
将代码稍作修改,给这两条语句加上大括号,可见此时程序的运行结果满足了我们的预期。
2.4.1.2:else的匹配机制
大家看看下面这段代码,猜猜它的执行结果过是什么。
int main() { int a = 0; int b = 2; if (a == 1) if (b == 2) printf("hehe\n"); else printf("haha\n"); return 0; }
你是不是猜的“haha”呢?,哈哈,很抱歉你猜错了。为什么不是“haha”呢?
原因是:这里的else是和第二个if匹配的,大家不要被else的位置迷惑了,看它和第一个if对其了就以为它是和第一个if匹配。else是就近匹配,和离他最近的那个if匹配。
上面这段代码就等价于下面这段代码:
int main() { int a = 0; int b = 2; if (a == 1) { if (b == 2) printf("hehe\n"); else printf("haha\n"); } return 0; }
我们用大括号把后面的一对if和else括起来,这时大家是不是就看的很明白了呢?可见养成一个良好的代码风格是十分重要的。
我们还可以通过加大括号让这个else和第一个if匹配。代码如下:
int main() { int a = 0; int b = 2; if (a == 1) { if (b == 2) printf("hehe\n"); } else printf("haha\n"); return 0; }
此时代码打印的结果就是“haha”了。