第三章.分支语句(if篇)
前言
本人是一名在校通信专业的学生,本文章主要用途为记录自己在C语言学习中的笔记
一、C语言的结构
C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种
结构的组合。
其中 我们可以用if、switch实现分支语句;用for、while、 do while实现循环语句
二、if语句
1.if
代码如下(示例):
#include <stdio.h>
int main()
{
int a = 0; //给a初始化
scanf("%d", &a); //scanf输入函数 %d占位符,&地址码
if (a > 0) //当输入的值>0时为真,运行打印haha
printf("haha\n");
else //否则为假,打印hehe
printf("hehe\n");
return 0;
}
表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏
在C语言中0为假,非0为真。也就是表达式的结果如果是0,则语句不执⾏,表达式的结果如果是
不是0,则语句执⾏。
2.例题总结
例1:输入一个整数,判断是否为奇数
代码如下:
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if (num % 2 == 1) //输入的数除以2的余数若为1,则为奇数
printf("%d 是奇数\n", num); //表达式的结果若为真(成立),则程序执行
return 0;
}
例2:输入一个整数,判断奇数和偶数
代码如下:
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if (num % 2 == 1) // 表达式的结果若为真(成立),则程序执行
printf("%d 是奇数\n", num);
else //否则为0,执行else
printf("%d 是偶数\n", num);
return 0;
}
例2:输⼊⼀个年龄,>= 18岁就输出:成年,否则就输出:未成年
代码如下:
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age >= 18) //当结果为真时,打印“成年”
printf("成年\n");
else //否则为假,打印 “未成年”
printf("未成年");
return 0;
}
3.分支中包含多条语句
默认if和else只能控制一条语句,若想控制多条语句,则需要添加一个大括号。
代码如下:
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age <= 18) //当结果为真时候,打印“未成年”
{
printf("未成年\n");
printf("啦啦啦啦啦\n"); //由于添加了大括号,可以再打印“啦啦啦啦啦”
} //if和else语句只能控制一条语句,若要控制多条语句 需要带上大括号
else //否则打印成年
printf("成年");
return 0;
}
4.if嵌套式
在if else语句中,else可以与另一个if连用,构成多重判断。
⽐如:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数
方法一
代码如下:
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if (num == 0) //嵌套式if语句第一种方式
printf(" 你输入的数字是0\n");
else
{
if (num > 0) //嵌套的if
printf("你输入的是正数\n");
else
printf("你输入的是负数\n");
}
return 0;
}
方法二
代码如下:
#include <stdio.h>
int main()
{
int num = 0;
scanf("%d", &num);
if (num == 0)
printf("你输入的是0\n");
else if (num > 0)
printf("你输入的是正数\n");
else
printf("你输入的是负数\n");
return 0;
}
练习:输入一个人的年龄,如果年龄<18岁,打印“少年”;如果年龄在18岁至44岁打印“青年”;如果年龄在45岁至59岁打印“中少年”;如果年龄在60岁至89岁打印“老年”;如果90岁以上打印“老寿星”。
方法一
代码如下:
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf(" 少年\n");
else
{
if ( age <=44) //if(30 < age < 59) 多个关系运算符不宜连用,但可以这么写 if(30 < age && age < 59)
printf("青年");
else
{
if ( age<=60)
printf("中老年\n");
else
{
if (age <= 89)
printf("老年\n");
else
printf(" 老寿星\n");
}
}
}
return 0;
}
方法二
代码如下:
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf(" 少年\n");
else if ( age <=44)
printf("青年");
else if ( age<=60)
printf("中老年\n");
else if (age <= 89)
printf("老年\n");
else
printf(" 老寿星\n"); //else有就近原则,与最近的if匹配
return 0;
}
方法三
代码如下:
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age <= 18)
printf(" 少年\n");
else
{
if ( 19 <= age && age <= 44)
printf("青年");
else
{
if (45 <= age && age <= 59)
printf("中老年\n");
else
{
if (60 <= age && age < 89)
printf("老年\n");
else
printf(" 老寿星\n");
}
}
}
return 0;
}
注意if语句中不能如下连写 if(i<j<k),只能if(i<age && age <k)
总结
本章简浅的讲述了一下关于if从句的知识点,主要学习了if从句、if从句的嵌入式、if从句嵌入式的多种方法、if从句的一些注意事项,如有补充,后续会一步步完善。