【精通C语言】:分支结构switch语句的灵活运用

个人头像
屿小夏 : 个人主页
个人专栏 : C语言详解
莫道桑榆晚,为霞尚满天!

文章目录

  • 前言
  • 一、switch语句
    • 1.1 语法
    • 1.2 代码示例
  • 二、switch的控制语句
    • 2.1 break
    • 2.2 defualt子句
  • 三、switch的嵌套
  • ️全篇总结

前言

在C语言中,switch语句是一种特殊的分支语句,常用于处理多分支的情况。通过switch语句,我们可以根据不同的整型表达式的值执行相应的代码块,使程序的逻辑更加清晰和简洁。除了基本的switch语句语法,我们还将深入探讨了break语句和default子句的作用,以及switch语句的嵌套使用,为读者提供了更全面的认识和理解。

一、switch语句

switch语句也是一种分支语句。
常常用于多分支的情况。

例如:

输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日

1.1 语法

那我没写成 if…else if …else if 的形式太复杂,那我们就得有不一样的语法形式。
这就是switch 语句。

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

而语句项是什么呢?

//是一些case语句:
//如下:
case 整形常量表达式:
	语句;

1.2 代码示例

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

#include 
int main()
{
    int day = 0;
    switch(day)
    {
        case 1printf("星期一\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;
}

根据需求,有时候我们的代码需要变化:

  1. 输入1-5,输出的是“weekday”;
  2. 输入6-7,输出“weekend
#include 
//switch代码演示
int main()
{
    int day = 0;
    switch(day)
    {
        case 1case 2:
        case 3:
        case 4:
        case 5:
            printf("weekday\n");
            break;
        case 6:
        case 7:
            printf("weekend\n");
            break;
    }
	return 0;
}

二、switch的控制语句

2.1 break

break语句 的实际效果是把语句列表划分为不同的分支部分。

break语句用于终止当前的case分支,并跳出switch语句。当switch语句中的某个case条件满足时,执行对应的代码块,然后遇到break语句时,会跳出switch语句,不再执行后续的case条件。如果没有break语句,程序会继续执行后续case条件的代码块,直到遇到break语句或者switch语句结束。因此,break语句在switch语句中的作用是控制程序的流程,避免不必要的代码执行。

编程习惯:

  • 在最后一个 case 语句的后面加上一条 break语句。
  • 之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break语句。

2.2 defualt子句

如果表达的值与所有的case标签的值都不匹配怎么办?
其实也没什么,结构就是所有的语句都被跳过而已。
程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条default子句,把下面的标签
default:
写在任何一个 case 标签可以出现的位置。
当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。
所以,每个switch语句中只能出现一条default子句。
但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句 。

编程好习惯:

在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。

三、switch的嵌套

#include 
int main()
{
	int n = 1;
    int m = 2;
    switch (n)
    {
        case 1:
        	m++;
        case 2:
        	n++;
        case 3:
            switch (n)
            {//switch允许嵌套使用
           		case 1:
            	n++;
            case 2:
                m++;
                n++;
                break;
            }
        case 4:
            m++;
            break;
        default:
        	break;
    }
    printf("m = %d, n = %d\n", m, n);
    return 0;
}

switch语句可以嵌套在另一个switch语句中,以实现更复杂的条件判断和逻辑控制。

️全篇总结

本文深入了解了C语言中switch语句的各种用法,包括基本语法、break语句的作用、default子句的使用以及switch语句的嵌套。这些知识不仅帮助我们更好地掌握C语言中的分支结构,还能够提高代码的可读性和可维护性。无论是处理简单的多分支情况还是实现复杂的逻辑控制,希望本文的内容能够帮助读者更好地应用switch语句,编写出高效、清晰的程序。

篇总结

本文深入了解了C语言中switch语句的各种用法,包括基本语法、break语句的作用、default子句的使用以及switch语句的嵌套。这些知识不仅帮助我们更好地掌握C语言中的分支结构,还能够提高代码的可读性和可维护性。无论是处理简单的多分支情况还是实现复杂的逻辑控制,希望本文的内容能够帮助读者更好地应用switch语句,编写出高效、清晰的程序。

【精通C语言】:分支结构switch语句的灵活运用_第1张图片

你可能感兴趣的:(C语言详解,c语言,开发语言)