【2】分支和循环

目录

1.C语言

2.分支语句

2.1if分支语句

2.2switch分支语句

3.循环

3.1while循环

3.2 for循环

3.3 do..while 循环

4.getchar、putchar 的使用

4.1 EOF 文件结束标志

4.2 实际用途


1.C语言

C语言是一门结构化的程序设计语言

  • 顺序结构
  • 选择结构
  • 循环结构

2.分支语句

语句:C语言中一个分号隔开的就是一条语句,如果一行只有分号(;)那么是空语句

C语言在编译扫描的时候,会将一条语句的分号作为结束标志,如果一条语句没有分号结束,就会报错。但是,如果分号和代码不在同一行,也没问题。

虽然这种代码风格很差,但是编译器先遇到代码,然后碰到分号结束一条语句,所以不报错

2.1if分支语句

if (exp)

        语句1;

else if (exp)

        语句2;

else

        语句3;

{} 代表一个代码块,如果if..else...里面的语句,只有一句,可以省略{},但是如果多条语句需要{}代码块放到一起

Tips:

  • (10<a<18)这种写法C语言是不支持的,C语言先执行10<a,根据结果返回真假1/0,在判断1/0<18是否成立.应该用&&逻辑与书写(10<a && a<18)
  • else与最近的,没有匹配的if相匹配。而不是代码对齐匹配(悬空else问题)....
  • if...else...条件判断的时候,里面如果是赋值等号(=),会根据赋予的值判断条件是否成立。0为假,非零为真

 练习:输出1-100之间的奇数

2.2switch分支语句

switch(整型表达式

{

case 整型常量表达式

        语句1;

        break;

default:(case都不满足的时候

        语句2;

        break;

}

注意:

  • case,default没有顺序可言,满足哪个进哪个case,都不满足进default
  • case没有break会发生case穿透,建议所有的case、default都加break

3.循环

3.1while循环

while(exp)

        语句;

  • break 用于跳出while循环
  • continue 用于跳过本次循环,后面代码跳过

3.2 for循环

for(初始化;判断;调整)

        语句;

  • for尽量采用前闭后开的写法(i = 0;i<10)
  • for(int i = 0;..;...)这种写法是C++写法,C不支持,有些编译器会编译失败

for循环的变种:(初始化、判断、调整都可以省略)

  • 判断的部分省略,恒为真,则进入死循环

3.3 do..while 循环

do

{

        语句;

}while(exp); 

循环体至少被循环一次,但是不经常使用

4.getchar、putchar 的使用

ch = getchar()        输入一个字符

putchar(ch)            打印一个字符 

4.1 EOF 文件结束标志

EOF(end of file)值为-1 (点击EOF,转到定义)

分析: getchar只能读取一个字符,虽然输入了EOF,但是编译器是读一个E,输出一个E,然后才是OF。

正确的退出:CTRL+Z

4.2 实际用途

scanf:输入函数

会在输入缓冲区找数据,如果有东西,会拿走回车(\n)之前或者空格之前的数据,那么ret会将\n读走,会出现放弃确认

正确示例:通过循环将输入缓冲区多余的内容,用getchar读走

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵星人监护人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值