前言
C语言是一门结构化的设计语言,具体分为顺序结构,选择结构,循环结构
什么是语句
C语言语句可分为五类: 1.表达式语句 2.函数调用语句 3.控制语句 4.复合语句 5.空语句 本章主要介绍的是控制语句 控制语句:用于控制程序的执行流程,以实现程序的各种结构方式,C语言的三种结构由特定的语句定义符组成,C语言有9种控制语句。 可分为三类: 1.条件判断语句也叫分支语句:if语句,switch语句。 2.循环执行语句:do while语句,while语句,for语句。 3.转向语句:break语句,goto语句,continue语句,return语句。
分支语句
if语句
if语句是一种条件判断语句,if有三种语法结构:
if(表达式)
语句;
if(表达式)
语句1;
else
语句2;
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
第一种结构
第一种结构只用于1次判断
if(表达式)
语句;
第一种结构表示若条件满足表达式则执行语句。 代码示例:
#include<stdio.h>
int main()
{
int age = 18;
if(age>=18)
printf("你已成年");
return 0;
}
若age<18则此程序不会有结果,如图所示 PS:若if,else,else if语句是一段代码块则语句部分需要加花括号,否则程序可能报错。 代码样例:
#include<stdio.h>
int main()
{
int age = 18;
if(age>=18)
{
printf("你已成年");
printf("可以适量饮酒");
}
return 0;
}
第二种结构
第二种结构只用于2次判断
if(表达式)
语句1;
else
语句2;
第二种结构是若满足表达式则执行语句1,若不满足则执行语句2,代码示例如下:
#include<stdio.h>
int main()
{
int age = 16;
if(age>=18)
printf("你已成年");
else
printf("你未成年");
return 0;
}
如果age>=18则会出现
第三种结构
第三种结构用于多次判断(判断表达式>=3)
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
若满足表达式1则执行语句1,满足表达式2则执行语句2,若两个表达式都不满足则执行语句3 代码示例:
#include <stdio.h>
int main()
{
int age;
scanf("%d", &age);
if (age < 18)
printf("少年\n");
else if (age >= 18 && age <= 30)
printf("青年\n");
else if (age >= 31 && age <= 45)
printf("中年\n");
else if (age >= 46 && age <= 60)
printf("壮年\n");
else if (age >= 61 && age < 90)
printf("老年\n ");
else
printf("老寿星\n");
return 0;
}
悬空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;
}
如上图所示else与if搭配的原则为就近原则else会与离他最近的那个if搭配。
switch语句
switch只有一种结构:
switch(n)
{
case 1:语句1;
break;
case 2:语句2;
break;
...
case n:语句n;
break;
default:语句n+1;
break;
}
n只能是整形表达式,case后必须是整形常量表达式首先一定是整形而且一定是常量,不能是变量,就算是有const修饰的也不行,如const int a;,a归根到底也只是一个不可改变的变量并不是常量。break语句可根据程序目的选择添加与否,default也可根据具体情况选择加与不加,default的作用是如果default前面的case条件都不满足那么最后会执行default语句,其作用类似于if…else…中的else。 代码样例:
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
printf("星期1\n"); break;
case 2:
printf("星期2\n"); break;
case 3:
printf("星期3\n"); break;
case 4:
printf("星期4\n"); break;
case 5:
printf("星期5\n"); break;
case 6:
printf("星期6\n"); break;
case 7:
printf("星期天\n"); break;
}
}
若不加break,代码样例如下: 同样的输入若不加break,那么程序会一直执行到底。
循环语句
循环语句分为for,while,do…while三种语句
while语句
while(表达式)
循环语句;
若满足while的表达式则会重复执行循环语句直到不满足while的表达式为止。 代码样例:
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d\n", i);
i++;
}
}
若永远满足while的表达式则称为死循环例如whil(1),有兴趣的童鞋可以自己敲一下代码试试。
for语句
for(表达式1;表达式2;表达式3)
循环语句;
表达式1 表达式1为初始化部分,用于初始化循环变量的。 表达式2 表达式2为条件判断部分,用于判断循环时候终止。 表达式3 表达式3为调整部分,用于循环条件的调整。 代码样例:
#include <stdio.h>
int main()
{
int i;
for (i = 0; i < 10; i++)
{
printf("%d\n", i);
}
return 0;
}
for语句中的三个表达式都可以省略,甚至可以都省略,至于是否省略其中1到2个表达式或者全部省略要看具体需求。另外最好不要在for 循环体内修改循环变量,防止 for 循环失去控制。另一个建议是for语句的循环控制变量的取值采用“前闭后开区间”写法,如for(i=0;i<10;i++),而不是for(i=0;i<=9;i++),第一个for语句变量的前闭后开区间写法是一种良好的编程习惯在后期C语言学习中长用,当然具体怎么写也要结合编程要求。
|