循环与分支

目录

一.if语句

二.switch语句

三.while 语句

四.do while 的循环

五.循环中的break和continue

5.1 在while和do while的使用

​编辑

5.3有些区别的呢对于我们通过while理解的for有一些区别哦


 

绪论:正文开始前我们同样的会将自己在最近c语言中的理解与思想与大家分享。我们都知道c语言是一种程序性结构的设计语言,结构有:顺序(正常输入代码输出就是顺序结构),分支(也就是选择)结构,循环结构。其实呢这些结构是为了让我们更好的有条理的输入代码就比如我们为了表示我们的语气我们会说虽然。。。但是这样的逻辑词语表示我们的语气逻辑为转折,同样的计算机对于一些复杂的问题处理归根是二进制的计算,但是通过编译器的逻辑我们只要熟悉掌握关于操作符的运用和条件,关系和逻辑操作符以及计算机的运算等等基本方法我们就可以将复杂问题算法化,不过这需要逻辑的推导。所以计算机是一门逻辑性学科由此得知哦。接下来我们一起来了解其中的分支与循环结构吧!

一.if语句

用法:   

if (表达式判断句)

表达式;

如果表示式判断为真我们就执行if对应的表达式或者说程序块。

通过这个语句我们可以尝试解决这个问题:输入一个整数判断是否为奇数或者偶数:

(基本逻辑推导:奇数i一定是i%2==1)

b422fbe34350438480a994ed5ef66e98.png

 

输出的时候呢:按照顺序结构首先出现的是 请输入:

 

既然有如果是,那么就有如果不是啦。下一种就是如果不是奇数那就是偶数,我们用else表示这种逻辑。具体表达式如下:

if(判断表达式)

表达式;

else

表达式;

注意:也就是说if控制的表达式不执行的时候就执行else控制的表达式。

通过这个我们尝试一下这个问题:输入一个整数i,如果是奇数打印i是奇数,反之打印i是偶数

810211cde1ff40499a177bebdb5963ef.png

练习:如果你懂以上的方法尝试:输入一个数字表示你是否成年。

1.3 分支语句控制多个语句

实际上if 或者else 没有{}的使用默认只控制他们下面的第一条语句。如

int main()
{
    int i = 0;
    if (i == 1)//这是第一个if
        if (i == 0) //这是第一个if控制的语句由于第一个if的判断表达式为假使用该语句不执行
            printf("我好帅"); //第二个if 控制的语句
        else //第二个if不被执行对应的else 也无法执行
            printf("我好丑");

    return 0;
}

输出结果:

a9c07da888534f65a06b2b599bfe1fcc.png

 

还有另一种情况

a606ddf2643442fb883a1cccd68a1260.png

 

d42e4fa3553741d3acb751cda512f7e3.png

这也进一步说明只控制其中一条语句而不在其中的就会被执行咯。

 

其实一开始我说过if其实控制的除了一条一句还有代码块所以我们来看看然后控制多条语句(代码块)

代码块即:

{

表达式1;

表达式二;

 

}

使用比如:我们要证明输入三个数字判断是否为三角形,是否是等腰三角形,是否是等边三角形,是的话分别只打印他们对应的名字

df118d056cc44191b340c6f165a4210e.png

 

当然啦这里面有一点点写超前我的内容陈述但是待会会讲哦;

1.4 if分支语句的嵌套

7b0f701e40c64d9d8cb3afe8e6102204.png

其中对于这样的else 里面在嵌套if的时候可以简写成else if 具体参考上面我们寻找三角形哦。

 

练习:有了以上的方法我们就可以进行多重判断了哦。现在请你尝试一下:输入一个人的年龄 然后对应 0-18岁 答应 未成年 18-30岁打印青年 30-50岁打印中年

1.5 结论 else只跟最近的if对应

第一个图注意 else 上面if要有一个语句才行 不能if 没有表达式就直接else c会报错哦

e73a316617eb4562bf9224c801655700.pngfc0ebedeea4b4706838388131d1b6ccf.png

 

显然啦 else 只与最近的if对应咯

二.switch语句

switch(表达式)

  case 1:

      break;

 

  case 2:

      break;

 

  case 3:

      break;

default 

break;

(表达式);

注意default 是switch表达式没有对应的情况的时候就会执行它

以及case 其实对应switch只是一个符号如果没有break的存在他会出不去switch语句继续执行其他情况的语句哦!此处读者可以尝试一下;下面简单的一个练习让你体会一下

练习:输入一个数字打印对应是星期几;

 

 

0b7540c2d74546f49ea8e092867bf5f4.png

三.while 语句

while语句呢是循环语句,循环执行符号它的判断表达式后不断执行它控制的表达语句;

 

364880d715934e00902f9eb0b72c257b.png

这个呢只会执行打印hehe而且还是无线循环因为第一个while的判断表达式恒为真(1)

与if非常类似while 可以控制循环代码块(称之为循环体)

练习 请你打印 1-10这些数字吧

f1d1285347fd4c67bc28689b9de46ce9.png

逻辑训练:输入一个大整数请你打印他们的逆序数 例: 54321 打印:12345

 

 

 

 

逻辑分析:因为54321%10==1;而54321/10==5432 继续:5432%10==2而5432/10==543 这样就是转换为它循环的逻辑啦 所以解决方法如下

 

33110de0f3f0407fa546c0cc7fc13b37.png

四.do while 的循环

运用方法:

do

{

}

while(判断语句) ;//这个分号记得加上有些区别哦

与while不同的是这个本质上是先执行一遍再判断要不要继续进行,只不过比while无论判断语句证据都会有一层执行

练习:打印一个菜单

b64f6b0ebe38434b81044663554d214c.png

当你一进入就要开始执行的循环哦

五.for 循环的使用。

for(变量初始化;循环变量判断;循环变量调整 )

03fdb2b3975644c0a523e15ea95dc01f.png

 

153fa605f6944c0da4ac423b331f0f22.png

2d777616e0874d068ed551843eac3c92.png

 

练习:输入一个整数判断有几位数字

在这里不再强调逻辑的推导 只给出代码的例子 谢谢理解!

cbb8eda6c8664d1d9a28c55da3edc88d.png

五.循环中的break和continue

break:它在循环中要是被执行break该注意循环嵌套的时候它只是结束break属于的循环循环彻底被结束。

continue:跳过它写在他后面的一些代码继续循环直到判断表达式为假循环结束为止。

实际上对于do while 与while二者的使用差不多 

对于上述for有所不同;

5.1 在while和do while的使用

例如你觉得下面的输出会是什么呢

7b4db9e4e0324d49929b986a9e822a7e.png

这个输出结果是:234

76aa005677164cbc8119b4abcf76c7a5.png

这个输出啥也没有;

 

5.3有些区别的呢对于我们通过while理解的for有一些区别哦

具体如下:

 

意思就是说 对于调整部分由于图中while中的循环变量调整在continue的后面当continue被执行,循环变量调整就被停止了,这就导致循环打印了。

而for中的循环变量调整虽然本质上与while执行顺序相同但是continue显然是没跳过for(;;调整变量 )里面调整的那一步骤的

26db2deed49242528166ce77784855ca.png

9c80d82c1ddf4753864f1df2df29d295.png

 

 

 

六.结语。

非常感谢读者的观看。有什么问题很高兴你的提示,xuandong一定全力以赴认真对待您的问题谢谢啦‘

 

  • 41
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值