《C语言从入门到入土》-- 第六章 “分支与循环语句”

文章目录

一、C语言的三种结构

二、分支语句

2.1 if 单分支

2.2 if...else 双分支

2.3 if...else if...else 多分支

2.4 if 嵌套

2.5 switch 语句

三、循环语句

3.1 while 循环

3.2 for循环

3.3 do...while循环

3.4 循环嵌套

3.5 break 和 continue

一、C语言的三种结构

C语言是结构化的程序设计语言,这里的结构指的是顺序结构选择结构循环结构,C语言是能够实现这三种结构的。

我们可以使用 ifswitch 实现分支结构,使用 forwhiledo 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
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

四叔家养的猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值