C语言初阶系列
分支语句和循环语句(1)
目录
C语言初阶系列
前言
一,什么是语句?
1.1如何理解语句?
二,分支语句(选择结构)
2.1,if语句
2.2,if语句的错误的条件写法
2.2,if语句的正确的条件写法
2.3,单分支结构
2.4,双分支结构
2.5,多分支结构
2.5.1可以实现,使用的很多的嵌套但是很臃肿的写法
2.5.2简洁的写法
2.5.2更简洁的写法
2.6,if语句默认它的后面只能控制一条语句
2.7,养成良好的代码习惯
2.7.1更人看懂的代码风格
if语句小技巧
2.8,举例if语句
2.8.1. 判断一个数是否为奇数
2.8.2.输出1 - 100之间的奇数
总结
前言
我们学习C语言,从小白成长为大佬的的探险历程,我们在这章将初步探索if语句这个知识关卡
一,什么是语句?
C语言语句可分为以下五类:
1. 表达式语句
2. 函数调用语句
3. 控制语句
4. 复合语句
5. 空语句
1.1如何理解语句?
我们将使用代码和注释,以及和运行示意图:
int main()
{
3 + 5;//这就是一个表达式语句
printf("hehe\n");//我们想用printf函数打印hehe这个信息,调用这个函数,
//完成之后给个分号,这就是函数调用语句
//语句就是大部分情况下一个分号隔开的就是一个语句
;//简单的放一个分号,这就是一个语句,但是这个语句什么都不干,这叫空语句
//空语句的应用场景,有时候我们需要一条语句,但是这条语句什么都不需要做,就可以使用空语句
return 0;
}
控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语
言有九种控制语句。
可分成以下三类:
1. 条件判断语句也叫分支语句:if语句、switch语句;
2. 循环执行语句:do while语句、while语句、for语句;
3. 转向语句:break语句、goto语句、continue语句、return语句
二,分支语句(选择结构)
分支语句是面向我们C语言的选择结构,为了实现这种选择结构
C语言给出了分支语言这个语法特点
2.1,if语句
是C语言单子常用的,能够实现分支的这样的语句形式
if语句该怎么去书写呢,解释一下:
如果表达式的结果为真,则语句执行。
在C语言中如何表示真假?
0表示假,非0表示真。
2.2,if语句的错误的条件写法
我们将使用代码和注释,以及和运行示意图:
//错误写法
int main()
{
int age = 0;
scanf("%d", &age);
if (18<= age <=30)
//表达式先判断age>=18,
//如果age是50的话,18小于age,这个条件为真,为真就等于1
//1又小于等于30,所以这个地方就打印青年了
//不是两端去判断age在这个范围内,它是先执行18<= age,在执行age <=30
printf("青年\n");
return 0;
}
2.2,if语句的正确的条件写法
我们将使用代码和注释,以及和运行示意图:
正确写法
int main()
{
int age = 0;
scanf("%d", &age);
if ( age >=18 && age <= 30)
printf("青年\n");
return 0;
}
2.3,单分支结构
单分支语法结构:
if (表达式)
语句;解释:
if语句的后面的小小括号里面放一个表达式,
表达式的结果如果为真,语句就被执行,表达式的结果如果为假就不被执行
C语言中:0表示假,非0表示为真
表达式如果算出的不是0就是真,语句执行,如果为0就不执行我们将使用代码和注释,以及和运行示意图:
//单分支的场景
//只处理符合条件的
int main()
{
//如果年龄大于等于18 -- 成年
//小于18,不管他
int age = 0;
scanf("%d", &age);
if (age >= 18)
{
printf("成年人");
}
return 0;
}
2.4,双分支结构
双分支语法结构:
if (表达式)
语句1;
else
语句2;解释:
if如果表达式为真,就执行语句1,
当表达式为假的时候,我也想处理,我就可以走else,就可以执行语句2
要么你从if语句进去,执行语句1,不行就执行else语句,执行语句2,这个里面二选一我们将使用代码和注释,以及和运行示意图:
int main()
{
// 有if有else你不行就我来
//如果年龄大于等于18 -- 成年人,否则就打印 -- 未成年人
int age = 0;
scanf("%d", &age);
if (age >= 18)
{
printf("成年人");
}
else
{
printf("未成年人\n");
}
return 0;
}
2.5,多分支结构
多分支语法结构:
if (表达式1)
语句1;
else if (表达式2)
语句2;
else
语句3;解释:
if表达式语句,如果表达式语句为真,就执行语句1,
如果不行的话,else if在判断一下下面表达式2,
如果表达式2的语句为真,就执行语句2,
如果表达式2的语句也不为真,就只能执行else的语句3
这里就做到了3选1,当然也可以多选1
多分支结构举例:
我们使用多分支的条件
age <18 - 未成年
18-30 - 青年
31-50 -中年
51-70 -中老年
71-99 -老年
>99 -老寿星
2.5.1可以实现,使用的很多的嵌套但是很臃肿的写法
我们将使用代码和注释,以及和运行示意图:
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
{
printf("未成年\n");
}
else//else如果是整体的一个逻辑的话,大于等于18,
//else里面有很多种类的情况,里面也可以细分
{
if (age >= 18 && age <= 30)//如果大括号里面只有一条语句。就可以将大括号去掉
{
printf("青年\n");//if else这个整体合起来是一条语句
}
else
{
if (age >= 31 && age <= 50)
{
printf("中年\n");
}
else
{
if (age >= 51 && age <= 70)
{
printf("中老年\n");
}
else
{
if (age >= 71 && age <=99 )
{
printf("老年\n");
}
else
{
printf("老寿星\n");
}
}
}
}
}
return 0;
}
2.5.2简洁的写法
我们将使用代码和注释,以及和运行示意图:
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf("未成年\n");
else if (age >= 18 && age <= 30)
printf("青年\n");
else if (age >= 31 && age <= 50)
printf("中年\n");
else if (age >= 51 && age <= 70)
printf("中老年\n");
else if (age >= 71 && age <=99 )
printf("老年\n");
else
printf("老寿星\n");
return 0;
}
2.5.2更简洁的写法
我们将使用代码和注释,以及和运行示意图:
//因为有前置条件可以在else if中写出一种条件就行
//但是条件顺序不能变动,变动就会逻辑错误
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf("未成年\n");
else if ( age <= 30)
printf("青年\n");
else if ( age <= 50)
printf("中年\n");
else if ( age <= 70)
printf("中老年\n");
else if ( age <= 99)
printf("老年\n");
else
printf("老寿星\n");
return 0;
}
2.6,if语句默认它的后面只能控制一条语句
我们将使用代码和注释,以及和运行示意图:
int main()
{
int age = 0;
scanf("%d", &age);
if (age >= 18)
printf("成年了\n");
printf("谈恋爱");//独立的,不被if控制
return;
}
如果想让if语句可以控制,就要加一个限制
if后面加上一个大括号,这样if语句才都被控制了一个大括号对应的是一个代码块
int main()
{
int age = 0;
scanf("%d", &age);
if (age >= 18)
{//代码块
printf("成年了\n");
printf("谈恋爱");
}
return;
}
2.7,养成良好的代码习惯
要养成良好的代码风格,让别人能够看得懂
容易让大家出现阅读错误的代码风格我们将使用代码和注释,以及和运行示意图:
int main()
{
int a = 0;
int b = 2;
if (a == 1)
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}
//看代码感觉结果是haha
//但是结果是不打印
//else是与最近的if相匹配的,这样第一if进入了才能执行if里面的if和else
//要写出让人容易理解的代码风格
//更容易看懂的代码风格
int main()
{
int a = 0;
int b = 2;
if (a == 1)
{
if (b == 2)
printf("hehe\n");
else
printf("haha\n");
}
return 0;
}
2.7.1更人看懂的代码风格
我们将使用代码和注释,以及和运行示意图:
if语句的书写风格
容易误导的写法
if的条件满足就是return x,不满足就返回return y。
if (condition) {
return x;
}
return y;
让人一目了然的写法
if (condition)
{
return x;
}
else
{
return y;
}
在不影响效率的情况下我们要写那种让人一目了然的代码
if语句小技巧
我们将使用代码和注释,以及和运行示意图:
int main()
{
int a = 0;
//if(a == 5)//这样写少写一个=号,不易发现,没有报错
if (5 == a)//当我们写少写一个=号,就会报错,易发现错误
//未来我们想判断一个变量和一个常量值是否相等的话,
//可以把常量放在等号的左边,这样即使少写了一个等号,就会发现错误,改正
printf("hehe\n");
return 0;
}
2.8,举例if语句
2.8.1. 判断一个数是否为奇数
我们将使用代码和注释,以及和运行示意图:
int main()
{
int n = 0;
scanf("%d", &n);//只有变量才能赋值,表达式是不能被赋值的,
//少写一个等号就会直接报错的
if (n % 2 == 1)//通过模2得到的余数为1的,都是奇数
{
printf("YES\n");
}
else
printf("NO\n");
return 0;
}
2.8.2.输出1 - 100之间的奇数
我们将使用代码和注释,以及和运行示意图:
使用分支语句解题:
int main()
{
int i = 1;//循环变量
while (i <= 100)
{
if (i % 2 == 1)//通过模2得到的余数为1的,都是奇数
printf("%d ", i);//%d后面加一个空格是为了,让我们看的跟清晰
i++;
}
return 0;
}
不使用分支语句解题:
int main()
{
int i = 1;//循环变量
while (i <= 100)
{
printf("%d ", i);//%d后面加一个空格是为了,让我们看的跟清晰
i+=2;
}
return 0;
}
总结
以上就是今天要讲的内容,本文仅仅全面介绍了C语言的if语句,可以让你在c语言的探险更加有趣,充实。