分支语句【从0到1过程】

目录

一、引入

二、选择语句

1.if语句

 2.switch语句



一、引入

今天,我们来学习分支与循环语句。

在我们日常中所做的事中,总结起来大概就是三大类。顺序,例如我们的人生,婴儿,孩子,青年,中年,老年等。选择,例如我们高中的选科,填志愿时选专业,选院校等等。循环,例如我们学习。生活的方方面面都设计这三类,那么在代码的世界又如何体现呢?接下来我们来讨论一下选择这一方面。


 

二、选择语句

1.if语句

单分支if语句
if(表达式)
{
   语句1;
}


双分支if语句
if(表达式)
{
   语句1;
}
else
{
     语句2;
}


多分支if语句
if(表达式)
{
    语句1;
}
else if(表达式)
{
     语句2;
}
.......   此处可以写多个else if分支

else
{
    语句;
}

分析:

  • c语言是用0来代表假,非0为真;
  • if后面的表达式作为一个条件判断,若条件判断为真,条件成立,执行后面的语句。否则不执行或者执行else后面的语句,或者进入其他语句判断。

 if语句的一个易错点

#include <stdio.h>
int main ()
{ 
    int a == 0;
    int b == 2;
    if(a == 1)
        if(b == 2)
            printf("hehe");
    else                       //else会与离他最近的if匹配
       printf("haha");
    return 0;
}
  

//打印结果:没有结果

易错点:else会与离它最近的匹配,我们读程序的时候,要留心分析。

在我们平时写代码的时候要善于添加{},这样写出来的代码会更有调理。


 2.switch语句

  switch(整型表达式)     int、long、longlong、char
  {
      case 整形常量表达式:
      语句;
  }

我们来看一个题:用编程实现输入数字,输出相对应的星期 

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
 int main()
{
	int day = 0;
	//输入
	scanf("%d", &day);

	int n = 1;
	switch (day)         //switch语句实现
	{
	case 1:
		printf("星期1\n");
		break;
	case 2:
		printf("星期2\n");
		break;
	case 3:
		printf("星期3\n");
		break;
	case 4:
		printf("星期4\n");
		break;
	case 5:
		printf("星期5\n");
		break;
	case 6:
		printf("星期6\n");
		break;
	case 7:
		printf("星期天\n");
		break;
	default:
		printf("选择错误\n");
		break;
	}



	/*if (1 == day)             //我们可以利用if多分支语句来实现
		printf("星期1\n");
	else if (2 == day)
		printf("星期2\n");
	else if (3 == day)
		printf("星期3\n");
	else if (4 == day)
		printf("星期4\n");
	else if (5 == day)
		printf("星期5\n");
	else if (6 == day)
		printf("星期6\n");
	else if (7 == day)
		printf("星期天\n");*/
	return 0;
}

分析:首先,我们要了解一个知识点,case后面接的整形常量表达式作为一个标号,执行时首先计算switch后面括号中的表达式,然后按照计算结果依次寻找与之相等的case标号值,找到之后,并从此往下执行;如果找不到case标号值,就从default标号往后执行。

让我们再看一个需要注意的点———break在switch语言中的功能 

我们来修改一下上面程序的,看代码

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
 int main()
{
	int day = 0;
	//输入
	scanf("%d", &day);

	int n = 1;
	switch (day)
	{
	case 1:
		printf("星期1\n");
		//break;
	case 2:
		printf("星期2\n");
		//break;
	case 3:
		printf("星期3\n");
		//break;
	case 4:
		printf("星期4\n");
		//break;
	case 5:
		printf("星期5\n");
		//break;
	case 6:
		printf("星期6\n");
		//break;
	case 7:
		printf("星期天\n");
		//break;
	default:
		printf("选择错误\n");
		//break;
	}
	return 0;
}

 

分析:

  • 在这个程序里,我们把break给注释掉了
  • 当我们输入5的时候,程序输出的是星期5   星期6    星期天    选择错误;这就不能实现我们想要的功能。
  • 出现这个结果的原因是,case子句只起标记作用,它没有判断条件的功能,找到匹配的case的标号只是找到一个程序的入口,执行case后面的语句后,流程控制将转移到下一个case标号后的语句继续执行。
  • 如果想要每个case执行之后式程序跳出switch结果,即终止switch语句的执行,我们就需要使用一条break语句可以达到这个目的。
  • break语句:从循环体内跳出循环结构,即提前结束循环。在switch结构中体现出来就是跳出switch语句。

此外,这个程序也可多支if语句实现,大家可以自己去尝试一下。

 小结

今天我们讨论了分支语句,介绍了if语句的结构,一些要注意的点。讲了switch语句的结构,case标号,break在switch的体现。循环结构我们放到下次。讲的不好,有误的地方,欢迎多多斧正,感谢各位读者的阅读!希望我们都有所进步!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值