C语言(if语句)

                    Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,关注+收藏,欢迎欢迎~~

                💥个人主页小羊在奋斗

                💥所属专栏C语言

        本系列文章为个人学习笔记,在这里撰写成文一为巩固知识,二为同样是初学者的学友展示一些我的学习过程及心得。文笔、排版拙劣,望见谅。       

                一、if语句

                                1.if

                                2.else

                                3.分支中包含多条语句

                                4.嵌套if

                                5.悬空else问题

        C语言是一门结构化的程序设计语言,这里的结构化是指顺序结构、循环结构和选择结构,C语言基本可以通过这三种结构或者这三种结构的组合来解决我们日常生活中的所有问题。我们可以使用 if、switch 实现分支结构,使用 for 、while、do while 实现循环结构。

一、if语句

        1.if

        if语句的语法形式如下:

        if(表达式)

                语句;

        表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行;

        在C语言中,0为假,非0表示真,也就是表达式的结果如果是0,则语句不执行,表达式的结果为非0,则语句执行。

        我们通过上面三个例子一定要记住非0即真这个概念,初学者很容易在这句话上栽跟头。

        接下来我们写一段简单的代码,输入一个整数,判断是否为奇数:

        因为我们输入的值是99, 99%2的值等于1,所以 if  后面括号里的表达式结果为真,所以执行下一条语句打印: 99是奇数。

        注意:if (表达式)后面不加分号。那如果在上面 if (1==a%2)后面加上分号,再输入100,回车打印的结果是什么呢?

        可以看到,它打印出了 “100是奇数” 。这显然是错误的,但是程序却正常运行没有报错,那就应该是我们写的逻辑出错了。

        其实,在我们给 if (1==a%2)后面加上分号后,分号就构成了一个单独的语句,即空语句,至于为什么程序会执行打印操作这一句代码,那就不得不提到另一个知识。

        看下面这种格式:

        if (表达式)

        {

                语句;

        }

        if 后面的语句用一个花括号括了起来,当语句只有一条时,可以省略花括号。继续回到上面的问题,在我们加上分号使分号单独构成一条语句(空语句)后,后面的打印操作代码就与 if 语句没有什么关系了,因此不管 if 后面括号里的表达式结果是否为真,打印操作代码都会执行。

        如果还觉得不太清楚,请不要着急,看完整篇文章的内容你就会明白。

        2.else

        如果一个数不是奇数,那就一定是偶数了。如果任意一个整数,我们要清楚的判断是奇数还是偶数怎么表达呢?这里就需要 if...else...语句了,语法形式如下:

        if(表达式)

                语句1;

        else

                语句2;

        例子:输入一个数,判断是否为奇数,如果是奇数打印是奇数,否则打印是偶数。

        我们就用 if...else...语句完成了判断一个随机整数是奇数还是偶数这个问题。

        再来看一个例子:输入一个整点数,如果<=12就算上午,否则就算下午。

        3.分支中包含多条语句

        其实在 if 和 else 语句默认都只控制一条语句,比如:

        上面的代码,你会发现输入的点数不管是不是上午,“要锻炼了” 都会打印在屏幕上。

        这是因为 if 语句只能控制一条语句,就是紧跟着的那条语句,对于打印“要锻炼了”这条代码,它是独立的,不管 if 语句的条件为真或假都会被执行。如果想要 if 语句同时控制多条语句,那就要用花括号括起来,else 后也跟上花括号。

        我们平时用的时候一般都有多条代码,所以基本都会有花括号

        4.嵌套if

        在 if...else...语句中,else 可以与另一个 if 语句连用,构成多重判断。

        比如:要求输入一个整数,判断输入的整数是0,是整数还是负数。

        如果上面的 else if 还不太容易理解的话,来看下面这样写:

        这样看是不是就容易理解了,但是这样形式比较复杂,我们把它一简化,就得到了最开始我们写的那种嵌套形式。

        我们再来看:

        这又是另外一种结构写法,但是实现的功能却都是一样的。我们用了三种写法(实际还有多种写法)实现了同一种功能,想告诉大家的是程序逻辑的写法是多种多样的,只要能实现同一个结果就行。

        5.悬空else问题

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

        我们来看:

        你猜程序运行的结果是啥?

        如果你猜的是屏幕上打印 “hello”,那么恭喜你,成功地猜错了;如果你猜的是屏幕上打印 “world”,那么恭喜你,成功地又猜错了。到此,你已成功地掉入了陷进中。我们来看看程序运行的结果到底是什么?

 

        可以看到,它什么都没打印。为什么呢?

        我们在这一小节的开始就说了这句话: 如果有多个 if 和 else ,可以记住这样一条规则,else 总是跟着最接近的 if 匹配。你品......你细品。事实上上面代码中的 else 与第二个 if 才是配对的。希望通过这样一个小陷阱能带给我们深刻的印象,以后不要在这个上面出错。

        上述代码规范的写应该是这样(但并不是说上面这样写就不对,只是容易误解):

        所以,不管语句多与少,我们都要养成习惯加上花括号 “{   }”,这样代码就更加清晰,减少了歧义或错误的可能。 

        因为 a>b 不成立,所以第一个 if 后面的所有代码都不会执行,所以什么都不会打印。

        想说什么呢?代码写成什么样很重要,代码不只要高效可行,可读性还要高,不能产生歧义。因此,作为一名优秀的程序猿(虽然我还是励志要成为优秀程序猿的大学牲),代码风格是重要的,我们不仅要修炼扎实的技术,更要修炼优良的素质,为自己更为他人着想。

                                点击跳转主页—> 💥个人主页小羊在奋斗

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值