6.C语言--分支与循环语句知识点【精简版】

一、5类C语句

  1. 表达式语句
  2. 函数调用语句
  3. 控制语句

1)分支语句:if、switch;

2)  循环语句:do、do while 、for;

3)  转向语句:continue、 break、goto、return;

     4.复合语句
     5.空语句

二、分支语句

if语句

1.结构

//多分支

2.条件表达式为真就执行【1为真,0为假】

3.如果条件成立,要执行多条语句要怎么办?

一对{}表示一个代码块

4.else的匹配:else是和离他最近的且不带else的if匹配;

5.if 的格式书写

第二种比第一种好!!


Switch语句

【常用于多分支】

1.语法结构

代码块里的是语句项

2.switch语句中的break

在switch语句中我们无法直接实现分支,需要借助break来实现分支;

break的实际效果是把语句列表分成不同的分支部分

3.好习惯:在最后一条case后面加一个break语句;

4.Switch 语句中的default子句

1)当所有表达的值和所有case标签的值都不匹配时,程序不会停止也不会保错,结果只是会跳过所有case语句而已;

但如果你不想忽略不匹配所有case标签的表达的值,可以在Switch语句中加一个default语句;

加在任意case语句可以存在的地方;

如果Switch语句表达式的值与任何case标签的值都不匹配,就会执行default子句后面的语句;

所以一个Switch语句只会有一个default子句;

default可以加在任何位子,语句流会像执行case语句一样执行default语句;

5.编程好习惯

在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。

6.练习

【细节1】case1、2、3后没有break,所以接下来按顺序执行;

【细节2】Switch语句允许嵌套使用;

【细节3】case3中的break只是结束了case中的Switch语句,并没有结束大的Switch语句,并且case3语句后没有break,所以继续执行case4语句;


三、循环语句

while语句

1.语法结构

2.break语句

【作用:永久终止循环】

3.continue语句

【作用:终止本次循环,本次循环中continue后面的部分不再执行,直接跳到while语句的判断部分,进行下一次循环的入口判断】

用途:“只输出数字字符,跳过其他字符”


for语句

1.语法结构

2.for语句和while语句的比较

可以看出while同时也具备有循环的三个必须条件,但和for语句相比while语句的三个条件距离较远,查找修改时不集中不方便,所以在风格上for语句更胜一筹;

For语句用的更频繁;

3.continue与break语句

和while语句中的continue和break作用相同;

4.for语句的循环控制变量

建议:

1) 不可在for 循环体内修改循环变量,防止 for 循环失去控制。

2)建议for语句的循环控制变量的取值采用“前闭后开区间”写法。

//前闭后开的写法

for(i=0; i<10; i++)

{}

//两边都是闭区间

for(i=0; i<=9; i++)

{}

5.for循环的一些变种

1)for语句中的3个表达式可以省略,但初学不建议省略;

2)可以使用多个变量控制循环;


do while 语句

1.语法结构

2.do while 语句特点

【至少执行一次,使用场景有限,所以不常用】

3.continue和break语句

【和while循环中的用法相同】


四、分支与循环(下)

随机数生成【猜数字游戏实现】

rand函数

【原型:int rand(void)】

1.可以生成随机数,范围是0~RAND_MAX(其大小依赖于编译器,一般是32767)

2.生成的是伪随机数,伪随机数不是真正的随机数,是通过某种算法生成的随机数。真正的随机数是无法预测下一个数值是多少的。

3.而rand函数是对一个叫“种子”的基准值进行运算而生成的随机数;

4.之所以在之前的程序运行中随机数都一样,是因为rand函数默认种子为1;

5.为了使随机数不再重复,我们要使种子进行变化(不用随机,只要变化就好)

6.使用rand函数要包含stdlib.h

7. 写法rand()%a[范围是0~a]

  普适写法rand()%(n-m+1)+m[范围是m~n]

Eg.范围1~100 rand()%100+1

srand函数

【原型:void srand(unsigned int seed)】

  1. 用来初始化随机数的生成器的;
  2. 程序在调用rand函数之前要先调用srand函数,通过srand函数的参数seed设置rand函数在生成随机数时的种子,只要种子变化,随机数序列就会变化;
  3. 但是在生成随机数的时候我们还需要随机变化的种子,这就矛盾了,所以我们又引入了time函数;

time 函数

【原型:time_t time(time_t* timer)】

  1. time_t实质上是整型类型
  2. 参数timer一般可以是NULL
  3. time函数返回的时间差叫做时间戳,是现在时刻和1970年1月1日的时间差,单位是秒
  4. 使用time函数要包含头文件time.h

 

  • 38
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值