一、前言
- 本人是一名小白,这一篇是记录我C语言学习中的分支语句和循环语句的所学所得,仅为简单的认识下C语言中的各个知识。
- 重点内容如下图
二、什么是语句?
- C语句可分为以下五类:
- 表达式语句(2+3;)
- 函数调用语句
- 控制语句
- 复合语句
- 空语句
- 本章后面介绍的是控制语句。
- 控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。—>C语言是一门结构化的程序设计语言。
- 可分成以下三类:
- 条件判断语句也叫分支语句:if语句、switch语句;
- 循环执行语句:do while语句、while语句、for语句;
- 转向语句:break语句、goto语句、continue语句、return语句。
三、分支语句(选择结构)
- 人生处处面临选择,不同的选择也让这个世界多元化,在程序的设计中也是如此。
1、if语句
1、那if语句的语法结构是怎么样的呢?
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
//单分支
if(表达式)
语句;
//表达式为真,语句执行
//在C语言中如何表示真假?0表示假,非0表示真。
//双分支
if (表达式)
语句1;
else
语句2;
//多分支
if (表达式1)
语句1;
else if (表达式2)
语句2;
else
语句3;;
return 0;
}
2、应用举例
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);//20
//单分支
//if (age >= 18)
// printf("成年\n");
//双分支
//if (age >= 18)
// printf("成年\n");
//else
// printf("未成年\n");
//多分支
if (age < 16)
printf("少年\n");
else if (age >= 16 && age < 30)
printf("青年\n");
else if (age >= 30 && age < 40)
printf("中年\n");
else if (age >= 40 && age < 56)
printf("壮年\n");
else if (age >= 56 && age < 80)
printf("老年\n");
else
printf("老寿星\n");
return 0;
}
运行结果
- 注意:if可以嵌套(if里面还有if)
3、那如果条件成立,要执行多条语句,该应该使用代码块呢?
#include <stdio.h>
int main()
{
if(表达式)
{
语句列表1;
}
//if语句只能控制一条语句,这里的一对 { } 就是一个代码块。
else
{
语句列表2;
}
return 0;
}
举例
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int age = 20;
if (age >= 18)
{
printf("成年\n");
printf("担当责任\n");
}
return 0;
}
运行结果
4、悬浮else
- 当我们打出下面这个代码
#define _CRT_SECURE_NO_WARNINGS 1
#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;
}
运行结果
我们会发现什么都没有。
- 我们需要修改成以下
#define _CRT_SECURE_NO_WARNINGS 1
#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的匹配:else是和它离的最近的if匹配的。 - 注意
if+else是一条语句。
5、if书写形式的对比
#define _CRT_SECURE_NO_WARNINGS 1
# include <stdio.h>
int main()
{
int condition = 0;
int x, y;
//代码1
if (condition) {
return x;
}
return y;
//代码2
if (condition)
{
return x;
}
else
{
return y;
}
//代码3
int num = 1;
if (num == 5)
{
printf("hehe\n");
}
//代码4
int num = 1;
if (5 == num)
{
printf("hehe\n");
}
return 0;
}
- 代码2和代码4更好,逻辑更加清晰,不容易出错。
- 小练习
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//比较一个变量和一个常量是否相等的时候
//建议把常量放在等号的左边
//输出1-100之间的奇数
int main()
{
int i = 1;
while (i <= 100)
{
if (i%2 == 1)
printf("%d ", i);
i++;
}
return 0;
}
运行结果
2、switch语句
1、介绍
- switch语句也是一种分支语句,常常用于多分支的情况。
2、举例
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main(