c语言怎么判断两张图片是否一样 老师说,C语言中的switch和if语句是等价的,能举例子说说吗?要注意什么吗?

[更新]
·
·
分类:互联网
2704 阅读

c语言怎么判断两张图片是否一样

老师说,C语言中的switch和if语句是等价的,能举例子说说吗?要注意什么吗?

老师说,C语言中的switch和if语句是等价的,能举例子说说吗?要注意什么吗?

谢邀。
严格来说,C语言中的 switch 语句和 if 语句并不总是完全等价,使用 switch 语句实际上是有一定限制的。
下文将举例子解释相信题主已经对 if/else 以及布尔代数有了比较深入的认识,可以对现实世界中的复杂问题,分情况处理了。事实上,在 C 语言中,还有一种分支语句,就是 switch 语句,在介绍它之前,先来考虑这个问题:
输入 1-7 七个数,程序要对应着分别打印出 Monday-Sunday(星期一到星期天)。
这样的问题,用 if/else 语句非常容易解决,请看如下代码:
以上代码很好的解决了问题,不过使用C语言中的 switch 语句也是能够非常简单的解决问题,switch 语句可以产生具有多个分支的控制流程,它的格式是:
知道了C语言switch语句的格式后,使用它重写上述代码就简单了,请看:
上面的例子我们传给 print_day 的参数是 2,所以从“情况2”(case 2) 处开始执行,然后打印 “Tuesday”,接着 break。break 是 C 语言中的关键字,它的作用是挑出整个 switch 语句块。C 语言规定各 case 的常量表达式必须互不相同,各 case 均不等于常量表达式,则进入 default 分支。
使用switch语句要注意几点case 后面跟的必须是常量表达式,因为这个值必须在编译时计算出来。case 后面跟的常量表达式的值必须是整型,因为浮点型是不能精确比较相等不相等的,整型或字符型则可以,这是由不同类型数据的存储方式决定的。进入case后如果没有遇到break语句就会一直往下执行,后面其它case或default下面的语句也会被执行到,直到遇到break,或者执行到整个switch语句块的末尾。通常每个case后面都要加上break语句,但有时候故意不加break来利用这个特性,例如:
这样一来,输入 1-5 都会输出“Weekday”(工作日),输入6、7则会输出“Weekend”(周末)。
switch语句不是必不可缺的,显然可以用一组if..else if…else if…else代替,但是一方面用switch语句会使代码更清晰,另一方面,有时候编译器会对switch语句进行整体优化,使它比等价的if/else语句所生成的目标代码效率更高。
另外,由于 switch 语句的 case 后要求是常数,限制了其使用范围,所以要用其替换 if...else
语句,需要保证 if 的条件是常数表达式。如果条件表达式很难写成常数表达式,switch 语句就很难使用了。
不过工具是死的,人是活的,switch 语句和 if 语句各有优缺点,只要掌握了,我们应该总是能够根据实际条件灵活的写代码的。
欢迎在评论区一起讨论,质疑。文章都是手打原创,每天最浅显的介绍C语言、linux等嵌入式开发,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章哦。

C语言怎么样,好学吗?

C语言学起来还是比较简单的,关键字少;
贴近硬件,学会编程的同时,还可以对计算机底层有初步的了解;
对以后学习好其他的编程语言也是很有帮助的,比如说,什么是堆,什么是栈,内存的分配与释放,这些都是所有的语言都会涉及到的。
如何学习C语言呢?重要的事情说三遍:多写代码,多写代码,多写代码,一定要多写代码。培养一种“码感”,还有就是多思考,多总结,多看别人的文章,多看别人写的代码,从中去汲取适合自己的东西。
遇到很头疼的问题,好几天都还搞不懂的那种,建议暂时先放弃,过段时间再回来看。切忌眼高手低,比如说,只下载视频,却从来不去看,或者是只看视频,不敲代码,学习编程一定记得自己动手去敲代码,无论哪种编程语言都是一样的。
最开始学习C语言,看的是“如鹏网”的《C语言也能干大事》系列视频教程,通过开发超级玛丽,飞机大战,连连看等经典小游戏,用C语言来开发网站等来讲解C语言的知识点,快速入门,没想到C语言还可以这么学。