一、语句类型
c语言中的基本语句类型:
1. 表达式语句
2. 函数调用语句
3. 控制语句
4. 复合语句
5. 空语句
二、分支与循环(控制语句)
生活中的各种事情都可以用顺序,选择,循环,这三种状态描述与组合。
如果c语言中只有一句句按顺序执行的代码,那么在处理很多事情的时候会出现麻烦。
在对一个事情进行判断时,就需要if语句。如果需要打印1~100的所有数字,如果只是用简单的printf函数输入100行,工作量极大,并且代码十分不简洁,所以有循环语句也是十分有必要的。
c语言中还提供了一种转向语句——break语句、goto语句、continue语句、return语句。
可以用于结束某种循环。
c语言中对于选择判断语句提供了if与switch两种,循环语句有while、for、do while。下面进行分类介绍。
三、分支语句If 与 Switch
If语句中跟上的判断语句如果为真,就执行下面的代码,在c语言中,0为假,任何非0数都是真。
特别地,EOF也是真。
1、单个情况
if (判断语句)
需要执行的代码
2、如果有多个情况,则需要使用if+else if组合语句
if (判断情况1)
需要执行的代码
else if(判断情况2)
需要执行的代码
3、if+else组合语句
if (判断情况1)
需要执行的代码
else
需要执行的代码
Note:如果if 语句后跟的需要执行的代码有多句,需要跟上一个大括号!
悬空else语句:
先来看这样的代码
#include <stdio.h>
int main()
{
int
a
=
0
;
int
b
=
2
;
if
(
a
==
1
)
if
(
b
==
2
)
printf
(
"hehe\n"
);
else
printf
(
"haha\n"
);
return
0
;
}
大多数人第一次见到都觉得,输出的结果是haha,认为if(a==1)是与else绑定的。但实际上在编译器里什么都没有输出,也就是说else语句没有输出。事实上,else是与if(b==2)合在一起,作为一个代码块,
原因是c语言中,else语句总是选择与它最相近的if语句合在一起。
这种代码总是会引起歧义,下面给出改正后的代码——
#include <stdio.h>
int
main
()
{
int
a
=
0
;
int
b
=
2
;
if
(
a
==
1
)
{
if
(
b
==
2
)
{
printf
(
"hehe\n"
);
}
}
else
{
printf
(
"haha\n"
);
}
return
0
;
}
Switch 语句:
为什么要提出Switch语句?——在判断情况过多的时候,选择Switch语句会是一个好的选择。
Switch的结构:
给出一个具体的例子——
#include <stdio.h>
int
main
()
{
int
day
=
0
;
switch
(
day
)
{
case
1
:
printf
(
"
星期一
\n"
);
break
;
case
2
:
printf
(
"
星期二
\n"
);
break
;
case
3
:
printf
(
"
星期三
\n"
);
break
;
case
4
:
printf
(
"
星期四
\n"
);
break
;
case
5
:
printf
(
"
星期五
\n"
);
break
;
case
6
:
printf
(
"
星期六
\n"
);
break
;
case
7
:
printf
(
"
星期天
\n"
);
break
;
}
return
0
;
}
Switch后跟的是一个整形的变量,编译器会将这个常量与case后面的量进行判断是否相等,如果相等就执行这个case内的语句。
NOTE:如果不跟上break的话,从某一个case进入后,仍会执行下面的case语句,即使判断值不相等。所以,不管什么情况下都建议加上break。
Switch中还可以在最后跟上一个default子句,用来判断所有情况都不成立下需要执行的语句。
四、循环语句While For 与 Do While
while循环语句:
1、定义循环变量
int 循环变量 =
2、while语句
while (循环变量的范围)
3、在循环体内部进行对循环变量的调整。
循环变量++
for循环语句:
for (初始化循环变量;循环变量的范围;循环变量的调整)
执行的语句
for循环中的变量建议以前闭后开的形式给出——只是可以提高部分情况下的代码可读性,并不是硬性要求。
for语句和while语句后不要加上分号“;”,否则会变成空语句使得循环失效!
DO while循环语句:
do{
要执行语句}
while(判断语句)
NOTE:do while先执行do的内容 再进行循环判断 ,所以不管怎么样它都有一次循环。