一.switch、if和while号时光机
你是否知道什么是选择?什么是判断,又或者知道什么是循环么?举个例子吧,一辆豪车和一辆自行车,你会作何选择呢?那么你会判断对与错么?雨,不是一直在循环的么!这些就是选择、判断、与循环。那么接下来,我将带领大家一起看一看switch、if和while的奇幻世界。希望能满足大家的要求,也能解答您的疑问,话不多说我们来一起看看吧!
1.switch...case...
大家对switch语句了解多少?知道它的黄金搭档么!对,就是case,当然你也许会说,还有break呢!对,你说的没错,但是想知道我为什么这么说么,接下来我就为你们一一道来。首先先看程序,switch后面的表达式1,不能为实数,只能是常量表达式或者是判断语句(不推荐)用判断语句,因为判断语句只有0和1之分,没什么意义。
switch(表达式1){ case表达式2:break; case表达式3:break; ....... default:break; }
下面的代码执行的时候一定会报错,因为switch后面的表达式必须是常量或者常量表达式。
switch(1.1){ case 1:break; case 2:break; .......; default:break; }
然后在表述一下case。case后面接的表达式也必须是整型常量,不能为实数。当然可以为字符,因为当case后面接字符的时候,程序在执行的时候会自动转为该字符对应的ASCII值,所以接字符也没什么问题。下面这段代码在执行的时候也一定会出错,所以大家千万要记得,不能这么用。
switch(1){ case 1.1:break; case 2.2:break; .......; default:break; }
那么接下来,就是关于switch和case后面这两个可有可无的弟弟了,break和default。为什么这么说呢,首先说说break吧,因为break的表述行为就是终止或者跳出的意思,在这里我们称它为跳出。有和没有到底有什么区别呢?首先第一点就是,当程序执行到某一个case语句后面的时候,如果没有break的话,它会直接再次的执行下一个case语句,知道遇见了下一个break语句或者default,它才会停止。这里我先把一个词,说给你们听。就是“穿透”,也就是case穿透,没有break,case是会一直执行下去的。所以,写case语句的时候千万要记得哪些地方该加break,哪些地方又能省去不写。
switch(1){ case 1: case 2:break; .......; default:break; }
再来说说default吧,该句也是可以省略的,因为如果要等到程序执行完上面都没有选择到合适的语句的时候,这样的程序写的也就没意义了。下面这样写代码也是完全正确的,但是还是得看个人喜好吧。好了switch语句就说完了,要是还有什么遗漏的地方,请大家踊跃给我消息,我一定虚心接受。
switch(1){ case 1: case 2:break; .......; }
2.if...和if的家族
说起if,大家肯定会说"如果"大家说的和想的也没错,就是如果的意思,只不过if后面还加入了一个判断语句。也就构成了大家一直在用的if...else等句子。下面来看看if的家族有多么庞大吧。
if(表达式1){ 代码块1; } if(表达式2){ 代码块2; } ......
上面写出来的代码,就是一小段if的代码,也是根据表达式来判断的。比如,如果表达式1成立,就执行代码块1,反正则继续判断,知道找到满意的为止。我们有必要来说说有关表达式的情况了。表达式的判断只能是0或者1,就是说如果为1则执行代码块1,反之则不执行。然后在和大家说说有关if的下面几条语句。
if(表达式1){ 代码块1; }else if(表达式2){ 代码块2; }
if(表达式1){ 代码块1; }else if(表达式2){ 代码块2; }else{ 代码块3; } ......;
这里要特别说明一下,上面的两条代码,只要有一个条件成立,那么下面的代码都不再执行了,这也可以说成是if单句代码的加强版吧,一定要特别记住。那么if,这个语句就说完了,如果还有要补充的,请大家给我留言。
3.while和do...while的循环使命
如果你想一直干某事,那么就得使用while或者do...while了。这两个语句基本就是用在死循环上面的,去让某人,或者某物一直不停的干着某事,直到你给它一条语句让它结束。下面我们先来看看代码的具体实现吧。
while(表达式){ 循环语句块; }
如果您想实现死循环,也就是对某事不停的操作,那么一般表达式最简单的死循环就是,令表达式值为1,这样就能达到死循环了。当然,你如果想结束死循环,那么你就得用case语句中的break了,这也是最简单的跳出死循环了。然后我们来说说do...while,它和while有什么不同呢?首先就是while语句如果条件不满足一定不会执行,但是do...while就不是了。有句话说的好,while不一定会执行,但是do...while一定会执行的。为什么呢?我们线看看do...while的代码具体实现吧。
do { 语句1; 语句2; ...... } while(表达式);
do...while,语句具体是则么实现的呢,我们先来看代码。do...while是从do后面语句开始实现的,也就是我们常说的,代码在计算机编译执行的时候是从上到下编译执行的,所以do...while是先执行了花括号里面的代码,然后执行到末尾了,也就是while后面的表达式了。此时计算机在判断,是否有在执行下去的必要,如果要执行的话,就得返回到do那再执行,然后知道表达式的条件不满足,就停止了。往往do...while和while一样令表达式为1,则出现死循环,这就是最简单的死循环,如果要结束该循环的话,用break也是可以的,具体还有什么办法跳出循环,我这里就不明说了。
二.嵌套是最美丽的风景
接下来,我再说说关于他们之间的嵌套了。if可以和while、do...while一起使用,往往用来帮助do...while和while跳出死循环。当然if也可以用在switch,往往用于判断是否可以执行到switch语句的开头部分。总的代码实现大致可以是这样写的。
while(表达式){ switch(1){ case 1: case 2:break; .......; default:break; } if(表达式1){ 代码块1; } }
一般就是这样的安放的位置。while用来判断是否要开始执行语句,然后具体的你想实现什么功能都在switch语句里面写着。然后switch语句用break来判断是否跳出switch语句,还是接着执行,直到遇见下一个break在跳出还是switch内部没有满意的答案。然后呢,如果你想反复的实现该工能,就让此程序一直执行下去,但是如果你想要让程序执行到某个阶段然后在满足条件下跳出循环,那么你就不得不用if语句作出判断了。
三.结束语
总之C语言博大精深,上面所说的语句仅仅是一部分,还有他们之间的各种嵌套使用,我在这里就不在说了,C语言还是一门能让我们用尽一生的生命去研究的课程,希望大家能互相学习,我这里只是一小部分,还有什么不足的地方,我真诚的希望大家能给我意见,让我们一起提高。!!