为什么程序要加冒号

2023-03-28 23:13 44次浏览 攻略

很多小伙伴都老是会碰到疑问,其实还是基础没打扎实,这些题如果你不看答案你能知道多少呢?如果还有很多不知道就证明基础没打扎实,如果你还在入门纠结,如果你还在苦恼怎么入门!小编有个建议,可以加小编弄的一个C语言交流基地,大家可以进入交流基地:565122788,里面新手入门资料,可以说从零到项目实战,都是可以免费获取的,还有程序员大牛为各位免费解答问题,热心肠的小伙伴也是蛮多的。不失为是一个交流的的好地方,小编在这里邀请大家加入我的大家庭。欢迎你的到来。一起交流学习!共同进步!小编等你!还有前面没有看的同学最好从程序员教你学C语言(一)开始看哦,尤其是基础还没打扎实的同学!

前面我们学了if,以及if的扩展形式,这里我们来书写一个程序,程序的作用是,根据输入的学分,得出应该给出A、B、C、D、E的5种评价

使用上面的方式也能打出正确的结果,但是我们现在要介绍另一种判断语句,它对于书写简洁且便于理解的代码大有好处。switch语句,它的一般形式如下:

switch(integer_expression)

{

case constant_expression_1:

statements_1;

break;

……

case constant_expression_n:

statements_n;

break;

default:

statement;

break;

}

它的执行逻辑是,首先测试表达式integer_expression的值,如果它等于下面某个case的constant_expression_n,就执行该case值后面的语句,然后会使用break这条语句跳出switch语句;如果没有找到对应的constant_expression_n,就执行最后的default默认语句里的代码。前面的测试表达式integer_expression可以使任意的,只要它等于某个整数即可,而case后面的constant_expression_n必须是一个常量(就是无法改变的值,比如1、'a'、3.14这种,它们都是字面常量,只能赋值给其他变量,而不能给常量赋值)。另外要注意每个case constant_expression_n后面都要加冒号,每个case都要对应一个break,不然程序会接着往下走而不跳出switch,直到switch的最后或者遇到break语句为止。

我们使用switch语句把上面的if else语句替换下:

学习交流群(565122788)

代码就是先输入得分score,然后使用score/10作为switch语句的测试表达式,如果score的值为100,得数为10;如果score为90~99,那么得数为9;如果score为80~89,那么得数为8;如果score为70~79,那么得数为7,依次类推,但是我们可以注意到,我们在代码里把case 10和case 9合并了,因为它们都需要打出level为A,这是需要注意的。另外我们可以做个小测试,比如把case 8语句的break注释掉,那么再运行结果,输入88,观察结果有什么变化

讲到break,还有另一个关键字continue,break的作用有两个,一个是跳出switch语句,另一个用在循环语句里面,用来结束当前循环;而continue只能用在循环语句,表示结束本次循环继续下一次循环,在看下面的例子

C/C++学习交流群,欢迎大家一起来交流提升。565122788进群就能获取C语言新手学习大礼包

我们可以看到区别,我们上面的for循环语句(其他循环也是一样的)里面,在if里面使用了break语句,它会跳出循环,所以打印到printCount=2就结束了;但是下面的for循环,里面使用的是continue,它只是忽略了printCount=3的打印而没有跳出循环,后面还是会继续打印printCount=4,这就是他们的区别。注意无论是break还是continue,它们作用的都是当前循环,怎么理解这句呢,假设我们这里是一个嵌套循环,break用于内层循环里面,那么我们跳出的就是内层循环,如果break用于外层循环里面,那么break就会跳出外层循环

第四章 天生邪恶的东西叫做指针

Dennis是某个公司最聪明的工程师,他发明了一种工具,每隔8英寸就在铝条上嵌入小针。这个工具可以很快地找到打印机输出位置的误差。

这个发明显著地提高了生产效率,Dennis的上司非常高兴,提议给他颁布一个公司的特别奖赏。他从车间里拿出这个工具,带回办公室,这样他可以一边写报告一边研究它。

这个上司显然还不习惯用这个工具,当他把它放在桌上的时候,将针尖朝上了。更悲催的是,当Dennis的上司的上司友好地坐到桌角上,打算谈谈给Dennis颁布奖励时,公司内的所有人都听到了他痛苦的尖叫声—他的屁股被扎了两个相距8英寸的孔。

C语言就恰如这个工具,它使用方便,看上去有点怪,如果不熟悉的人胡乱地使用它,就会引发像Dennis的上司这样的悲剧。而归根到底,是因为C语言里使用了指针—这个非常实用但是天生邪恶的坏东西

关于C语言的历史,我们要从它的祖先讲起,当时的人们已经厌烦了总是使用汇编语言来编程,于是发明了一种叫做B语言的东西,在C语言的入门书籍中,经常提到C是B语言的进化版本,但几乎所有的书对B语言的介绍就只有这么多了。B语言不直接生成机器码,而是由编译器生成栈式机用的中间代码,中间代码通过解释器来执行(类似Java),B是没有类型的语言,它的类型只有word,它虽可以运行在PDP-11(老古董机器了,记得当年还有一本书叫PDP-11机器语言与汇编语言)上,没有Java那么好的跨平台性,执行效率也非常低下。在后来的开发过程中Dennis Ritchie对B语言做了改良,追加了char数据类型,并且让B语言可以直接生成PDP-11的机器代码。曾经在很短的时间内,大家将这门语言称为NB语言,后来NB改称为C语言—这就是C语言的诞生。我只讲我觉得有用的东西,这里给大家讲这段历史,其实也是为了后续的一些问题,今天就到这了。欲知后事如何且听下回分解(手动滑稽)~

相关推荐