1 表达式语句
表达式语句由表达式加上分号";"组成。其一般形式为:
表达式;
执行表达式语句就是计算表达式的值。例如 c=a+a;
2 函数调用语句
由函数名、实际参数加上分号";"组成。其一般形式为:
函数名(实际参数表);
例如 printf("Hello !");
3 控制语句
控制语句用于控制程序的流程,以实现程序的各种结构方式。它们由特定的语句定义符组成。C语言有九种控制语句。 可分成以下三类:
条件判断语句:if语句、switch语句;
循环执行语句:do while语句、while语句、for语句;
转向语句:break语句、goto语句、continue语句、return语句。
1)条件判断语句
a、 if 语句
if...
c
if (表达式)
{
语句;
}
其中,当表达式为逻辑表达式时,表达式为真,即执行语句。注意当省略"=="逻辑运算符时,非零的任意数据类型都可视为真
c
int a;
a = 1;
if (a == 1)
{
a += 1;
}
printf("a=%d",a); //a=2
if (a) //省略了逻辑运算符
{
a += 1;
}
printf("a=%d",a); //a=3
当表达式为赋值语句时,则根据赋值结果是否大于0判断是否执行语句。
如
c
int a;
if (a = 1)
{
a += 1;
}
printf("a=%d",a); //a=2
if (a = 0)
{
a += 1;
}
printf("a=%d",a); //a=0
以上代码虽没有报错,但是会有警告: Using the result of an assignment as a condition without parentheses。
出现这个警号的原因是条件赋值没有加括号。当你特意使用条件赋值时,这个警告可以通过加括号解决,即if((a = 1)) . if((a = 0))
另外一种情况就是。你把逻辑运算符写成了赋值运算符,编译器就是为了纠正这种错误才特意警告。
if ... else ...
c
if (表达式)
{
语句;
}
else
{
语句;
}
if ... else if ... else ...
c
if (表达式1)
{
语句1;
}
else if (表达式2)
{
语句2;
}
else
{
语句3;
}
<=>
c
if (表达式1)
{
语句1;
}
else
{
if(表达式2)
{
语句2;
}
else
{
语句3;
}
}
b、switch语句
c
switch(整型数据(包括枚举型)或字符型数据)
{
case 常量1: 语句1; break;
case 常量2: 语句2; break;
case 常量3: 语句3;
case 常量4: 语句4; break;//此时常量3执行完语句3后,还要进入到语句4
...
default: 语句n;(没有default时不符合则跳过)
}
2)循环执行语句
a、for(表达式1;表达式2;表达式3){}
表达式1用作变量赋值,表达式2用作判断循环的结束条件,表达式3作为变量值的增减
c
int sum = 0;
for(int i = 0 ; i < 100 ; i++)
{
sum += i + 1;
}
printf("sum = %d",sum);
b、while(表达式){语句;}
表达式作为循环的结束条件,当表达式的值为非0时,一直执行语句。
c
int sum = 0;
int i = 0;
while (i < 100)
{
sum += i + 1;
i += 1;
}
printf("sum = %d",sum);
c、do {语句} while(表达式);
先执行do内的语句,再根据表达式作为循环的结束条件,当表达式的值为非0时,一直执行语句。
c
int sum = 0;
int i = 0;
do
{
sum += i + 1;
i += 1;
}
while (i < 100);
printf("sum = %d",sum);
3)转向语句
a、break;
跳出当前循环。常与if配合使用,满足条件时便跳出循环
c
int sum = 0;
int i = 0;
while (1)
{
if (i >= 100)
{
break;
}
sum += i + 1;
i += 1;
}
printf("sum = %d",sum);
b、continue;
结束本次循环而进入下此循环,当使用while作为循环语句时,要注意影响循环结束条件的语句是否被continue跳过了
c
int sum = 0;
int i = 0;
while (i < 100)
{
if (i % 2 == 0)
{
i += 1; //跳过循环前先增加i的值,避免产生死循环
continue;
}
sum += i + 1;
i += 1;
}
printf("sum = %d",sum);
c、return
直接跳出当前函数,并返回值
d、goto
先在程序某处添加标记,如"mark: ",然后使用"goto mark;"跳转
4 复合语句
把多个语句用括号{}括起来组成的一个语句称复合语句。
在程序中应把复合语句看成是单条语句,而不是多条语句。例如:
{ x=y+z; a=b+c; printf("%d%d", x, a); }
5 空语句
只有分号";"组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。例如:while( getchar()!='\n' );