小怡分享之C语言的分支和循环part1选择结构

前言:

        C语言是结构化的程序化语言,这里的结构就是指C语言的三大结构,分别是顺序结构、选择结构、循环结构,为什么只有这三种呢,其实我们仔细想一想,日常生活中的事情都可以拆分成这几种结构或者这几种结构的结合。

        下面就由小怡为大家分享介绍一下选择结构吧!

1.if语句

1.1   if

if语句的语法形式如下

if(表达式)
   语句

       表达式成立,为真,则语句执行,表达式不成立,为假,则语句不成立。

       在C语言中,0为假,非零为真(注意:这里的非零不是只包含正数,也包含负数)

a21fbcb6460646a5b67e1c21ad492985.png

另一种形式是如果有多条语句需要执行,就要加个括号。

if(表达式)
{
   语句
}

 代码如下

e034cb1e03c14916a3237abf64e72c07.png

其执行程序就是下面这样的

 666e30528aa04f758f118caf1e0b32ad.jpeg 

 1.2   else

下面我们来学一学如何来判断一个数是奇数还是偶数。

那就要用到if...else...语句了,语法形式如下

if(表达式)
{
    语句1;
}
else
{
    语句2;
}

代码如下

3daa23d1912549728f3327b0e24d7759.png

 执行程序如下

6e590716f18548cb997fed535c8ee08d.jpeg

1.3  嵌套if

      在if...else语句中,能进行嵌套使用,构成多重判断,就是在if的语句中可以包含if...else语句。

     eg:要求输入一个整数,判断输入的数是0,还是正数或者负数,代码如下:

723cca7e687e4099bf193d44f0e148f7.png

         再比如,输入一个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:非正数。代码如下 

f9e79080dbd1482e9f02ee0e2a298b52.png

有了嵌套if语句,就能够完成更多复杂逻辑的判断。

1.4    悬空的else 

         如果有多个if和else,可以记住这样一条准则,else总是跟最接近的if匹配

代码如下

e0ce38c352964d41b5dce34cc808ffa0.png

        这个是加了大括号的,如果不加大括号,就会是这样

#include<stdio.h>
int main()
{
    int n=0;
    int m=2;
    if(n==1)
        if(m==2)
            printf("hehe\n");
    else
            printf("haha\n");
    return 0;
}

            上面的代码排版让我们以为else是和第一个if配对的,当if语句不成立,自然想到的就是执行else子句,打印haha,但实际上else是和第二个if配对的,这样后边的if...else语句是嵌套在第一个if语句中的,如果第一个if语句就不成立,嵌套ifelse就没机会打印了,最终什么也不打印。

        所以只要带上适当的大括号,代码的逻辑就会更加的清晰,所以我们在写代码的时候要注意括号的使用,让代码的可读性更高。

2.switch语句 

          除了if语句外,C语言还提供了switch语句来实现分支结构。switch语句是一种特殊的if...else结构,用于判断条件有多个结果的情况。把多重的if...else语句改成更易用,可读性更好的形式。

switch(expression)
{
  case value1:statement
  case value2:statement
  default:statement
}

       根据表达式expression不同的值 ,执行相应的case分支,如果找不到对应的值,就执行default分支。

注意:1.switch后的expression必须是整型表达式;

           2.case后的值,必须是整型常量表达式。

 2.1    if语句和switch语句的对比 

          比如:输入任意一个整数值,计算除3之后的余数

下面是使用if语句完成的:

e51f3c022a5a476da56b1e78e4dfa1ab.png

 如果使用switch语句改写就是这样

145399399d30435f9849f57f2cc04d1c.png

注意:1.case和和后边的数字之间必须有空格;

           2.每一个case语句中的代码执行完成后,需要加上break,才能跳出这个switch语句。

              所以要注意根据自己的需求使用好break哦。

2.2    switch语句中的case和default的顺序问题

     switch中的case语句和default语句是没有顺序要求的,只要满足需求就可以,不过我们通常是把default子句放在最后处理。

 2.3    switch语句中的break

           switch语句也是分支效果的,但是如果没有break,它就会依次一步一步执行,而不是执行完这个就跳过后面的了。只有在switch语句中使用break才能跳出switch语句,如果遇不到break就有可能执行其他case中的代码,直到遇到break或者switch语句结束。

          switch语句中的break语句是非常重要的,能实现真正的分支效果。

         但是,也不是每个case语句都有break语句,这就得根据实际情况来看了。

2.4    switch语句中的default 

         在使用switch语句的时候,我们经常可能遇到一种情况,比如switch后的表达式中的值无法匹配代码中的 case语句,这时候就不得不做处理,得在switch语句中加入default语句。

          🌈✨好啦,本次的分享就到这里啦,小怡希望大家能一起努力学习,“如果命运是世界上最烂的编剧,那么你就要争取做你人生最好的导演”,不用去忙着焦虑,我们只管勇敢!❤️

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值