目录
C语言中有三大结构,分别是顺序结构、选择结构(判断)和循环结构(分支结构):
- C语言顺序结构就是让程序按照从头到尾的顺序依次执行每一条C语言代码,不重复执行任何代码,也不跳过任何代码。
- C语言选择结构也称分支结构,就是让程序有选择性的执行代码;换句话说,可以跳过没用的代码,只执行有用的代码。
- C语言循环结构就是让程序“杀个回马枪”,不断地重复执行同一段代码。
前面我们看到的代码都是顺序执行的,也就是先执行第一条语句,然后是第二条、第三条……一直到最后一条语句,这称为顺序结构。但是对于很多情况,顺序结构的代码是远远不够的,还需要选择结构与循环结构。由于顺序结构相对简单,所以本篇我们将重点学习选择结构与循环结构。
一、选择(判断)结构
1.if...else...
C 语言提供了以下类型的判断语句:
语句 | 描述 |
---|---|
if 语句 | 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 |
if...else语句 | 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。 |
嵌套 if 语句 | 一个 if 或 else if 语句内使用另一个 if 或 else if 语句。 |
switch 语句 | 一个 switch 语句允许测试一个变量等于多个值时的情况。 |
嵌套 switch 语句 | 一个 switch 语句内使用另一个 switch 语句。 |
//多个if...else...
#include <stdio.h>
int main()
{
char c;
printf("请输入一个字符:");
c = getchar();
if (c < 32)
printf("这是一个控制字符\n");
else if (c >= '0' && c <= '9')
printf("这是一个数字\n");
else if (c >= 'A' && c <= 'Z')
printf("这是一个大写字母\n");
else if (c >= 'a' && c <= 'z')
printf("这是一个小写字母\n");
else
printf("这是一个其他字符\n");
return 0;
}
//运行结果:
请输入一个字符:d
这是一个小写字母
//if语句嵌套
#include <stdio.h>
int main()
{
int a, b;
printf("请输入两个数字:");
scanf("%d %d",&a,&b);
if (a != b){
if (a > b)
printf("a>b\n");
else
printf("a<b\n");
}
else
{
printf("a=b\n");
}
return 0;
}
//运行结果:
请输入两个数字:12 13
a<b
总结:a、语句块就是由{ }
包围的一个或多个语句的集合。如果语句块中只有一个语句,也可以省略{ }。
b、一旦遇到能够成立的判断条件,则不再执行其他的语句块,最终只能有一个语句块被执行
c、在 if 语句中,判断条件必须用括号括起来。接下来的语句块由{ }
包围,但要注意的是在}
之后不需要再加分号;
(当然加上也没错)。
d、if 语句嵌套时,要注意 if 和 else 的配对问题。C语言规定,else 总是与它前面最近的 if 配对。
e、关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<、<=、>、>=的优先级相同,高于==和!=,==和!=的优先级相同。赋值运算符(=) < &&和|| < 关系运算符 < 算术运算符 < 非(!)
f、if 语句的判断条件中不是必须要包含关系运算符,它可以是赋值表达式,甚至也可以是一个变量,例如:if(b){//TODO:};if(b=3){//TODO:}都是允许的。这里根据变量 b 的最终值来判断的,如果 b 的值为非0,那么条件成立,否则不成立。
2.switch case语句
C语言虽然没有限制if...else...能够处理的分支数量,但当分支过多时&#x