初学C语言(二)分支和循环

目录

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循环中有所差异)。

写到最后,希望大家能点赞支持一下新人,我会继续努力加油的,也会继续向大家分享我的知识理解和感想,有不足的地方也希望各位能在评论区友好指出,我会努力改正学习的,欢迎各位大佬在评论区留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值