目录
1.if语句
2.关系操作符
3.条件操作符
4.逻辑操作符
5.switch语句
6.while循环
7.for循环
8.do while循环
break和continue语句
前言:C语言能够实现顺序结构,选择结构,循环结构,我们可以使用if,switch实现分支结构,使用for,while,do while实现循环结构。
1 if语句
1.1 if...else
if(表达式),表达式成立(为真),则执行,表达式不成立(为假),则语句不执行
举个例子:输入一个整数,判断是否为奇数。
那如果我们要判断的数是偶数而非奇数,则需要用到if...else...语句了,我们直接上代码演示:
这里补充说明下if...else的语法形式:
1 if(表达式)
2 语句1
3 else
4 语句2
1.2分支中包含多条语句
默认在if和else语句中都只控制一条语句,那如果我们要if语句同时控制多条语句,就需要使用{ }将
代码括起来,else也要括上{ }。
最后,我们来看个例题巩固一下知识点,如何计算时间差程序:
思路:用后面时间减前面时间就是所求时间差,我们需要想定义标识符并赋值,然后转换成相减求值最后输出,这里我们需要注意的是时分转换时把小时部分转换,整数相除去整,分钟部分取余。
这里我们输入时间是不需要时分的,只需要输入9 28这种数字即可。
2.关系操作符
C语言用于比较的表达式称为关系表达式,里面的运算符被称为关系运算符,常见的关系运算符有
1 > 大于运算符
2 < 小于运算符
3 >= 大于等于运算符
4 <= 小于等于运算符
5 == 相等运算符
6 != 不相等运算符
这里我们需要注意(=与==的区别)例如a=1,表示对变量a赋值给1,表达a的值为1应该写成a==1。另外还有一点要注意的是:多个关系运算符不宜连用。
1 x < y < z
上面代码运行不能保证y的值在x和z之间,因为关系运算符是从左往右计算,使用它实际执行
的是
1 (x < y) < z
那我们表达y在x和z之间怎么办呢?这里我们需要用到逻辑运算符&&(等下会提),所以它正确
的表达方式应该为
1 x < y && y < z
3.条件操作符
条件操作符也叫三目操作符,因此需要三个操作数
1 exp1 ? exp2 : exp3
理解就是如果exp1表达式为真,则表达式的计算结果为exp2的计算结果,否则为exp3表达式计算的结果,例如:
输入x的值为9,因为9>7,所以执行exp2,y的值则为5
练习:找两个数中的较大值
4.逻辑操作符
逻辑运算符提供逻辑判断功能,主要有三个:
!:逻辑取反运算符(改变单个表达式的真假)。 |
&&:与运算符,通俗点就是“并且”的意思 |
||:或运算符,就是或者的意思 |
C语言中非零为真,零为假,这里我们详讲&&和||
1.&&是双目操作符,使用方法是a&&b,&&两边的表达式都是真的时候,这个表达式才是真,有一个表达式为假,则整个表达式为假。
2.||也是双目操作符,使用方法是a||b,||两边的表达式只要有一个为真,整个表达式为真,只有当两边表达式都为假的时候,表达式才为假。
练习:打印1950到2050之间的闰年。
这里我们需要理解闰年的判断规则:1.能被4整除并且不能被100整除是闰年 2.能被400整除是闰年。
5.switch语句
switch语句是一种特殊的if...else...结构,它用于判断条件有多个结果的情况,它的语法形式:
1 switch (expression) {
2 case value1: statement
3 case value2: statement
4 default:statement
5 }
根据表达式的不同值,执行相应的case分支语句,如果找不到对应的值,则执行default分支。这里我们需要注意几点:
1.switch后的expression必须是整型表达式。
2.case后的值,必须是整型常量表达式。
3.case和后边的数字之间必须要有空格
4.每个case语句的代码执行完后想要跳出switch语句,就需要加上break跳出循环。
练习:输入1~7的数字,打印对应的星期几
不知道大家是否会对switch语句中case和default的顺序问题感到疑惑?其实在switch语句中,这个并没有硬性要求,只不过是我们通常习惯将default语句放到最后处理。
6.while循环
while循环先执行判断表达式,表达式的值为0,循环直接结束;如果表达式的值不为0,则执行循环语句,再继续判断是否执行。
while实践练习1:打印200到250之间的值
例题2:输入一个正整数,逆序打印这个整数每一位 ,如输入589,输出985。解决这种问题的解题思路有:
1.要得到n的最低位,用n%10,得到的余数就是最低位;
2.要去掉最低位,找到倒数第二位,则用n=n/10可以去掉最低位;
3.循环1,2两步骤在n变为0前就能得到所有的位了。
7.for循环
for循环把初始化,调整,判断三部分放在一起,它的语法形式:
1 for(exp1 ; exp2 ; exp3)
2 | | |
3 初始化 判断 调整
4
5 语句;
它首先执行表达式1初始化变量,再执行表达式2判断,表达式2如果==0;则循环结束;如果!=0,则执行循环语句,执行完后再执行表达式3,然后调整循环变量,再去表达式2判断执行,决定循环是否继续(在for循环中初始化不分只执行一次)。
这里我们上代码演示:打印100~200之间7的倍数并计算其数字之和
如果能够所求数字的倍数,就可以省去一些多余的循环和判断
8.do while循环
do while 循环的表达形式:
1 do
2 语句;
3 while(表达式);
do while循环先执行语句,再执行判断表达式。如果表达式的结果!=0,则继续执行循环语句,如果表达式结果==0,则循环结束。
练习:任意输入一个正整数,计算这个整数有几位数?
9.break和continue语句
C语言提供两个关键字来解决程序需要提前终止的情况,分别是break和continue。
1.break的作用是用于永久性循环,只要break被执行,则会跳出循环继续往后执行。
2.continue的作用是跳过本次循环continue后边的代码,继续进行下一次循环的判断(在for循环和while循环中有所差异)。
写到最后,希望大家能点赞支持一下新人,我会继续努力加油的,也会继续向大家分享我的知识理解和感想,有不足的地方也希望各位能在评论区友好指出,我会努力改正学习的,欢迎各位大佬在评论区留言。