c语言常用的控制语句有哪些,C语言的几种控制语句的入门

主要讲解控制语句的几种类型以及注意事项,因为这些注意点很容易在初学者身上发生,与其等到错了再去学还不如一开始学的时候就学到位了。文章最后为大家准备了一份小小的游戏,旨在把本讲所学的知识用到。

《论语‧述而》有“择其善者而从之,其不善者而改之”,C语言有“择其适者而从之,其不适者而弃之”,岂不妙哉?

所谓的控制语句(亦称为分支语句)就是控制整够程序的执行流程,说白了就是“如果怎样那么就做相应的处理”。

先给大家罗列出C语言所提供的基本控制语句关键字:

if //单控条件语句

if-else //配对条件语句

if-else if-else//流水线配对语句

switch-case//开关语句

从单词字面含义大家就知道if是如果之意嘛,else是否则之意嘛,switch译为开关,基本语法如下:

单控条件语句:

if(ControllingExpression)//控制表达式

{

TODO SOMETHINGS

}

{}所囊括的是在控制表达式为真时所执行的语句,称为块语句;

配对条件语句

if(Controlling Expression)//控制表达式

{

TODO SOMETHINGS

}

else

{

TODO SOMETHINGS

}

如果条件不成立,在自动执行else语句块部分;

流水线配对语句

if(Controlling Expression)//控制表达式

{

TODO SOMETHINGS

}

else if(Controlling Expression)

{

TODO SOMETHINGS

}

else

{

TODO SOMETHINGS

}

如果有一个条件成立,则其他条件判断语句就不执行,即不进行判断操作,这样一来就节省程序执行时间了。

开关语句

switch(Controlling Expression)

{

case常量表达式:语句列表

case常量表达式:语句列表

case常量表达式:语句列表

…..

}

也即判断哪个case的常量表达式与Controlling Expression相匹配,那么就执行相应的语句列表。

其实控制语句的语法部分就这么多。但不禁要问一句,讲这么一点真的够了吗?显然不够,在实际项目开发时,往往所遇到的问题是一些教科书上所不曾提及到的。我们下面来讲解这些知识点。

稍稍深入:

①单单一个if语句多用于判断某个条件是否成立,不成立则直接结束整够函数的调用或者结束整够程序,配已return关键字得以实现,语法如下:

if(Controlling Expression)

{

return ;

}

②if-else配对形式,中的else总是与最近的if配对,在实际开发时千万注意配对层次的关系

③if-else if-else这种配对形式,多用于多分支判断语句,主要是对if-else的功能扩展,最后的else语句可有可无,就相当于switch中的default语句,但逻辑自己要清楚

④switch-case这个语句可以说是对if-else if-else语句功能的弱化而得来的,原因在于,switch的Controlling Expression只能是整形,而且case后面跟的表达式必须是常量,要在编译期间就能够确认。

深入部分其实也就是一些总结性质的东西,这个是要记住的。下面讲一些注意事项

①if语句如果是判断的浮点数的大小关系的话,最好是判断的一个范围,这个知识点涉及到浮点型数据的精度问题,后面会有讲

②switch-case语句中的break与default问题,这些事很多初学者犯错的地方,每一个case语句后都必须加break语句,default语句中的break可有可无,但是这个可有可无是基于你对C语言是非常了解的情况下才行,给大家举个例子

switch(day)

{

default …

break;//这里的break能少吗?如果少了,则至少有一个case语句被执行

case 1:

break;

case 2:

break;

}

下面给初学者附上一个猜数游戏,程序不是很难,主要就是用的控制语句实现的,大家有兴趣的话,可以自己写一下 #include #include #include main() { int magic,a,i=0,count=0; again:printf("input magic:"); i++; scanf("%d",&magic); srand(time(NULL)); a=rand()%10+1; for(;i<=10;) { count++; if(magic==a) { printf("right\n"); printf("magic=a=%d\n",magic,a); break;} if((magic>a)&&i<=9) {printf("big\nagain "); goto again; } if((magic>a)&&i==10) {printf("big\n"); goto end; } if((magic=10) printf("over\n"); }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值