文章目录
一、C语言的三种结构
C语言是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构,C语言是能够实现这三种结构的。
我们可以使用 if、switch 实现分支结构,使用 for、while、do while 实现循环结构。
二、分支语句
2.1 if 单分支
语法格式
if (表达式)
语句
代码演示:
// 确定输入的数是否是一个奇数
#include <stdio.h>
int main()
{
int num = 0;
scanf_s("%d", &num);
if (num % 2 != 0) // if 单语句
printf("%d 是奇数", num);
return 0;
}
运行结果:
1 (键盘输入)
1 是奇数
2.2 if...else 双分支
语法格式
if (表达式)
语句1
else
语句2
代码演示:
// 输入一个整数,判断是否已经成年
#include <stdio.h>
int main()
{
int age = 0;
scanf_s("%d", &age);
if (age >= 18)
printf("成年了~");
else
printf("未成年!!!");
return 0;
}
运行结果:
18 (键盘输入)
成年了~
15 (键盘输入)
未成年!!!
2.3 if...else if...else 多分支
语法格式
if (表达式1)
语句1
else if(表达式2)
语句2
...
else
语句n
代码演示:
// 输入一个整数,判断是正数还是负数
#include <stdio.h>
int main()
{
int num = 0;
scanf_s("%d", &num);
if (num >= 0)
printf("%d 是一个正数", num);
else if (num <= 0)
printf("%d 是一个负数", num);
return 0;
}
运行结果:
10 (键盘输入)
10 是一个正数
-10 (键盘输入)
-10 是一个负数
2.4 if 嵌套
else 总是和最近的 if 匹配
语法格式
if (表达式1)
语句1
if (表达式2)
语句2
...
else
语句3
代码演示:
// else 总是和最近的 if 匹配
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("111");
else
printf("222");
return 0;
}
相当于:
#include <stdio.h>
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
printf("111");
}
else
printf("222");
return 0;
}
运行结果:
结果为 空
2.5 switch 语句
语法格式
switch(表达式)
{
case 1:
语句1;
break;
case 2:
语句2;
break;
...
default:
语句n;
break;
}
代码演示:
// 输入成绩,判断A,B,C,D和不及格
#include <stdio.h>
int main()
{
int score = 0;
scanf_s("%d", &score);
if (score > 100 || score < 0)
{
printf("输入的成绩不合法!");
}
else
{
score /= 10;
switch (score)
{
case 10:
printf("A");
break;
case 9:
printf("A");
break;
case 8:
printf("B");
break;
case 7:
printf("C");
break;
case 6:
printf("D");
break;
default:
printf("成绩不及格");
}
}
return 0;
}
运行结果:
95
A
85
B
75
C
65
D
55
成绩不及格
-10
输入的成绩不合法
三、循环语句
3.1 while 循环
语法格式
初始值;
while(表达式)
{
循环体;
变量变化量;
}
代码演示:
// 打印 1~10 的值
#include <stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d\n", i);
i++;
}
return 0;
}
运行结果:
1
2
3
4
5
6
7
8
9
10
3.2 for循环
for循环 是三种循环中使用最多的
语法格式
for (初始值; 条件表达式; 变量变化量) {
// 循环体
}
代码演示:
// 打印 1~10 的值
#include <stdio.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{
printf("%d\n", i);
}
return 0;
}
运行结果:
1
2
3
4
5
6
7
8
9
10
3.3 do...while循环
语法格式
do
{
循环体;
变量变化值;
}
while (表达式)
代码演示:
// 打印 1~10 的值
#include <stdio.h>
int main()
{
int i = 1;
do
{
printf("%d\n", i);
i++;
} while (i <= 10);
return 0;
}
运行结果:
1
2
3
4
5
6
7
8
9
10
3.4 循环嵌套
前面三种循环,往往嵌套在一起才能更好的解决问题。
代码演示:
// 打印 100~200 之间的素数
#include <stdio.h>
int main()
{
int i = 0;
for (i = 100; i <= 200; i++)
{
int j = 0;
int flag = 1; // flag为1时,i是素数,反之
for (j = 2; j < i; j++)
{
if (i % j == 0) {
flag = 0;
break;
}
}
if (flag == 1)
printf("%d ", i);
}
return 0;
}
运行结果:
101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
3.5 break 和 continue
- break 的作用是 跳出循环
- continue 的作用是 跳过本次循环,继续下次循环
代码演示(break):
#include <stdio.h>
int main()
{
for (int i = 0; i <= 5; i++)
{
if (i == 3)
break;
printf("%d\n", i);
}
return 0;
}
运行结果:
0
1
2
代码演示(continue):
#include <stdio.h>
int main()
{
for (int i = 0; i <= 5; i++)
{
if (i == 3)
continue;
printf("%d\n", i);
}
return 0;
}
运行结果:
0
1
2
4
5