c语言初阶 -- 分支语句

目录

目录

一,什么是语句

二,分支语句(选择结构)

三,if语句

3.1悬空else

3.2if语句的应用

四,switch语句

2.1介绍break语句

2.2default子句



  在前两篇已经对c语言已经有了一个初步的了解,在接下来一系列的文章开始上正菜了,我将对c语言展开进行详细的分析。今天要学习的是分支语句。

一,什么是语句

我们学习分支语句首先得了解什么是语句。

C语句可分为以下五类:
1. 表达式语句
2. 函数调用语句
3. 控制语句
4. 复合语句
5. 空语句

选择语句就是属于控制语句,控制语句主要用于控制程序的执行流程,实现程序的各种结构方式,c语言是一种结构化的程序设计语言(c语言支持顺序结构,选择结构,循环结构)。

二,分支语句(选择结构)

条件判断语句也叫分支语句,主要有两种写法(if语句,switch语句)

     大家在日常生活中都是怎么度过的呢?肯定不会是日复一日按照同样的生活方式度过吧,我们可以通过某种判断来决定自己的行动。比如说今天下雨我们就要带上伞。

   或者说我们考上大学之后,不好好学习就要回家种地,如果好好学习在校招时就会拿到一个好的offer,这里就面临了两种选择。

04ca18b0b0ed48008e855365f0e18cc9.png

在生活中处处面临这选择,会通过我们自己的选择而改变这些事情的结果。

那c语言如何实现这种选择呢?请看下文

三,if语句

  为了实现这个选择,在c语言中提供了if语句。

if语句基本用法

if(表达式)
{
    语句;
}

 注:如果表达式成立,就执行语句。

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

注:如果表达式成立就执行语句1,不成立就执行语句二。

if(表达式1)
{
   语句1;
}
else if(表达式2)
{
  语句2;
}
else
  语句三;

  注:表达式1成立,执行语句1。

          表达式2成立,执行语句2。

          都不成立执行表达式3。

用if语句判断一个人是否成年

97c2ea24951743f1adaaa7b3030e750a.png

 总结来说,如果要执行多条语句,就判断条件是否成立,成立就执行对应的代码块。

 一对 { } 就是一个代码块

3.1悬空else

if语句可没有这么简单,有很多细节需要掌握。

那我们就从一段代码开始吧!

#include <stdio.h>
int main()
{
  int a = 0;
  int b = 2;
  if(a == 1)
    if(b == 2)
      printf("hehe\n");
  else
    printf("haha\n");
  return 0;
}

在我第一眼看到这个代码的时候我认为会打印haha,但是这段代码什么都不会打印

91ba77fcc5ca4664bcfb8877c207cf13.png

这里涉及到了一个if语句嵌套的问题, 在这种场景下else会找离他最近的if进行匹配,而不是找和他对齐的if进行匹配。

建议在自己写代码的时候加上括号,当然有时候题目会有这种坑。

3.2if语句的应用

判断一个一个数是不是奇数

#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	if (n % 2 == 0)
	{
		printf("是奇数");
	}
	else
	{
		printf("不是奇数");
	}
}

四,switch语句

有这么一个场景,输入一个数字,输出对应是星期几,需要n多条分支语句。用if语句能不能实现?

当然能实现,但是用这种方法似乎不太方便,形式太复杂了。

在这种背景下就引入了,switch语句,用于多分支语句。

代码如下:

#include <stdio.h>
int main()
{
  int day = 0;
  switch(day)
 {
    case 1:
      printf("星期一\n");
      break;
    case 2:
      printf("星期二\n");
      break;
    case 3:
      printf("星期三\n");
      break;  
    case 4:
      printf("星期四\n");
      break;  
    case 5:
      printf("星期五\n");
      break;
    case 6:
      printf("星期六\n");
      break;
    case 7:
      printf("星期天\n");  
      break;
 }
  return 0;
}

 这就是switch语句的用法

switch(整型表达式)
{
  语句项;
}

那语句项是什么呢?

就是一些case子句,如下

case 整形常量表达式:
  语句;

会根据整形表达式的值执行相匹配的case语句,例如:如果day是1,就会在屏幕上打印星期一。

2.1介绍break语句

break是停止结束的意思。

在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。

看下面这段代码,应该能应该能体现出break的作用。

int main()
{
    int a=1;
    int b;
    switch (a)
    {
        case 1: b = 30;
        case 2: b = 20;
        case 3: b = 16;
        default: b = 0;
    }
    return 0;
}

这个代码的运行结果是0,程序没有遇到break就会一直往下运行,b的值会改变。

当程序遇到break,就会跳出将他围起来的switch语句。

总结:case是入口,break是出口。

2.2default子句

default是默认的意思。

输入的值没有与之匹配的case语句,程序该怎么办呢?会出错?

这个时候就可以加一条default语句了,像这样。

ca0fe229152c4c5caf7b481f9faef288.png

注:语法原则上,default可以写在任何位置。

     在switch语句中default只能出现一个。

猜你喜欢

转载自blog.csdn.net/weixin_50966738/article/details/130233273