初学C语言(分支和跳转)

本文详细介绍了C语言中的if-else语句、嵌套结构、elseif的使用、switch语句及其break和default功能,以及跳转语句如break和continue的区别。重点强调了else和嵌套if的配对规则以及goto语句在C语言中的使用限制。
摘要由CSDN通过智能技术生成

1.if(else)语句

1.1if语句的形式

在C语言中if语句是常见的分支语句,if就像是我们生活中遇到的选择一样,具有较强的逻辑性,它的使用格式如下

这里的expression为条件判断语句,如果条件成立则执行statememnt语句,statement可以是一条语句也可以是复合语句。if语句与while循环十分相似不过if语句的条件如果成立的话statement只执行一次。

 这时如果输入小于40的数字是不会出现运行结果的,我们可以采用两个if语句

 像这种情况C语句给我们提供了if else语句,格式为

 当if的判断表达式不成立时则执行else下面的语句,上面的例子也可以写成

1.2嵌套语句 

当有很多种情况的时候,我们可以使用嵌套if  else语句,比如贴近生活的阶梯电费

例如国家电玩好的收费标准为当用户每月用电量小于210度时,按0.5/度收费;当用电量大于210度但时小于400度时,每度电上调0.05元的费用;当用户用电量大于400度时,每度电加价0.3元。直观的表示为

 接下来我们用if  else语句来实现一下,这里就采用了嵌套else语句,if语句也可以嵌套,称为嵌套if语句

1.3悬空else

这里要谨记的一点就是else与离它最近的if配对,用一个简单的例子说明一下

int main()
{
	int a, b;
	scanf("%d %d", &a, &b);
	if (a == 1)
		if (b ==1)
			printf("b is good");
	else
			printf("b is bad");
	return 0;

 我们来思考一下当我们分别输入0 0,0 1,1 0和1 1时输出分别是什么

从运行结果来看没有输出 ,并不是像我们想的那样if语句不成立就执行else,这是因为else并不与第一个if配对,它与离它最近的if也就是第二个if配对。当a为0时第一个if的条件判断语句不成立,而第二个ifelse语句时嵌套在它里面的,所以下面的程序不被执行没有输出。

 

 当a为1时表达式成立,因此就可以进入下一个if else语句的判断,这时就有了输出。

其实我们能在平常写代码的时候VS的代码格式是很便于我理解的,这里主要是为了让大家学习悬空else的问题。

  1.4else if 语句

else if语句主要是为了是我们的代码更简洁高效,如果在else后面有嵌套的if,那么就可以直接写成else if,用我们刚才举的例子

 2.switch语句

在C语言中不止有一个分支语句,除了if外还有switch语句,如果程序有多重选择,我们可以考虑使用switch语句

2.1switch语句的形式

在这里必须要注意的两点就是

1.expression语句必须是int表达式,并且必须是能计算出结果的表达式,这一点与if不同,if后的表     达式可以是一个范围 

2.case后的值必须是整形常量表达式

2.2switch语句的使用

1.break的使用

举个例子说明一下,比如输入编号输出对应的就诊信息

  当我们输入1和2时并没有输出我们想要的结果,这是因为当我们输入1后执行了case的内容,但时没有遇到结束的指令所以程序会一直向下执行,大家可以对比着分析输入2的情况。解决这种问题我们只需要在要执行的语句后加上break即可。如下图所示这样就可输出我们想要的结果

2.default的使用

在上面的例子中如果输入4会是什么结果呢,case中没有与之相匹配的值该怎么输出?如果按照上面的程序运行的话将没有输出。当输入的数据不符合时,输出要用default定义。在上个例子中如果输入的不是1,2,3,我们将提示请重新输入。

 注意:default的位置在switch语句中是任意的,不一定非要放到最后

3.跳转语句

break,continue和goto都能实现程序的跳转

在上次我们已经介绍过break和continue,break可以实现循环的终止,continue为跳过本次循环后面所剩下的代码。现在介绍一下goto语句。

在早期的BASIC和FORTRAN中经常使用goto语句。但在C语言中我们很少使用goto语句,因为没有goto语句程序也可以很好的运行,具体的来说就是break和continue很好的取代了goto语句的使用,并且goto语句有时候会带来一些不必要的麻烦。

3.1goto语句的使用

goto语句包含两部分,goto和标签名。例如goto end;程序就会跳到end所支配的语句,下面举例表示一下goto的用法,在C语言中几乎不使用goto语句,在这里我们只做一个简单的介绍。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值