C语言 选择结构(分支语句)

目录

1.选择结构和条件判断

2.用if语句实现选择结构

2.1在C语言中选择结构主要是用if语句实现的,为了让大家进一步了解if语句的应用,我们举个例子

2.2if语句的一般形式

2.3悬空else

3.用switch语句实现多分支选择结构

switch语句的形式 

前言在我们初学C语言学习的时是顺序结构,这是最简单程序结构。在顺序结构中,各语言都是按自上而下的顺序执行的,执行完上一个语句就自动执行洗一个语句,是无条件的,不用作任何判断实际上,在很多情况下,需要根据某个条件是否满足来决定是否执行指定的操作,或从给定的两种或多种操作选择一个,这就是选择结构要解决的问题。

在我们学习选择结构前,先认识一下语句

C语句可以分为一下五类:

  1.  表达式语句
  2. 函数调用语句
  3. 控制语句
  4. 复合语句
  5. 空语句

今天学习的选择结构(分支语句)循环结构(循环语句)控制语句

控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选 择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。

可分成以下三类:

  1. 条件判断语句也叫分支语句:if语句、switch语句
  2. 循环执行语句:do while语句、while语句、for语句
  3. 转向语句:break语句、goto语句、continue语句、return语句

1.选择结构和条件判断

在现实生活中需要进行判断和选择的情况很多。例如:

  • 如果考试不及格,要补考                          (判断是否及格)
  • 周末出去旅游                                            (判断是否是周末)
  • 输入一个数,输出其绝对值。可以写出以下语句
	if (x <= 0)
		printf("%d", x);
	else
		printf("%d", -x);

我们要处理这些问题,关键在于进行条件判断” 。

选择结构需要在进行下一个操作前先进行条件判断。

C语言的两种选择语句:

  1. if语句:用来实现两个分支的选择结构
  2. switch语句:用来实现多分支的选择结构

2.用if语句实现选择结构

2.1在C语言中选择结构主要是用if语句实现的,为了让大家进一步了解if语句的应用,我们举个例子

例:输入两个实数,由小到大输出这两个数

解题思路: 将两数进行比较,如果a<b,直接输出;如果a>b,将两数交换,然后输出。用if语句来判断。

要执行多条语句是,要使用代码块   “{}”     因为if语句默认后边只能管理一条语句

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d%d", &a, &b);
	if (a > b)
	{
        //将a,b的值互换
		int tmp = a;
		a = b;
		b = tmp;
	}
	printf("a=%d b=%d\n", a, b);
	return 0;
}

2.2if语句的一般形式

(1)    if(表达式)

                语句1

(2)   if(表达式)

                语句1

        else

                语句2

(3)     if(表达式1)

                语句1

          else if(表达式2)

                语句2

           else if(表达式2)

                语句3

           else

                语句4 

注意:表达式不可以连着写  例:1<x<10 

if(1<x<10)
//如果输入的x是11
//1<11表达式为真   返回1
//表达式将变为
if(1<10)
//1<10永远成立  就会执行if中的语句,会输出错误的结果

应该写成:x>1&&x<10      

2.3悬空else

 根据上述代码,我们可以看出else并不是和第一个if结合,同时VS也默认将else和第二个if对其

else的匹配:else是和它离的最近的if匹配的

int num = 1;
if(num == 5)
{
    printf("hehe\n");
}

当我们写这样的代码错将等号(==)写成赋值符号(=),我们这个错误的代码也会运行下去,所以我们可以将变量写在右边,这样我们写错代码无法运行。

3.用switch语句实现多分支选择结构

switch语句的形式 

switch(整型表达式)
    case 整形常量表达式:
    语句;

我们要实现输出今天是星期几,可以用switch语句 

 我们发现输入3,会打印出3以后所有的情况。我们要在每种情况后加break语句,可以跳出switch语句(case决定入口,break决定出口 )

说明:

  1. stitch语句括号内的表达式,其类型为整数类型(包括字符型)
  2. 语句体内包含多个以关键字case开头的语句和最多一行的default开头的语句。case后面跟的常量,例如:case 1或case 'a‘和default都是起标号作用,用来标志一个位置。执行switch语句,先计算switch后面表达式的值,然后将它与各csae标号比较如果与某个case标号中的常量相同,流程就转到此caes标号后的语句如果没有与switch表达式相匹配的case常量,流程就转去执行default标号后的语句。
  3. 多个case标号可以共用一组执行语句:例
case 1:
case 2:
case 3:
case 4:
case 5:
    printf("weekday\n");
    

注意:caes标号只起标号作用:根据switch表达式的值找到匹配的入口标号,就不再进行条件检查,在执行完一个case标号后面的语句,就从此标号一直执行下去,不在判断。所以要合理利用break。

这次选择结构的知识在这里就讲完啦。希望大家读完可以对选择结构有更深的理解,有所收获,如果有不正确的地方大家可以指出,同时也感谢大家的支持。

猜你喜欢

转载自blog.csdn.net/2301_76207836/article/details/130121866