c语言中“switch case”语句怎么用?

什么是switch case语句?

在C语言中,switch case语句是一种多分支选择语句,用于选择特定的操作,可以代替一些多重嵌套的if else语句,使代码更加简洁易懂。switch case语句的常用形式如下:

switch(expression)

{

case constant1:

statement1;

break;

case constant2:

statement2;

break;

default:

statementN;

break;

}

其中expression为需要进行选择的表达式,constant1、constant2等为可能的取值,statement1、statement2等为可能的执行语句,default为选择无法匹配常量时执行的语句。

如何使用switch case语句?

表达式的选择

在使用switch case语句时,需要选择一个表达式作为判断依据。可以是字符、整型、枚举类型等,但必须具有离散的值。以下是一个简单的例子:

#include <stdio.h>

int main()

{

int num;

printf("请输入数字:\n");

scanf("%d",&num);

switch(num)

{

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;

default:

printf("输入错误!\n");

break;

}

return 0;

}

上述代码中,用户输入一个数字,根据输入的数字输出对应的星期几。当用户输入错误的数字时,输出“输入错误!”。

常量的匹配

switch case语句中的常量必须是字面常量或枚举常量,变量是不允许的。另外,每个常量后都要有一个冒号作为分隔符。每个常量后的语句块称为语句组,一个常量可以对应多个语句。以下是一个例子:

#include <stdio.h>

int main()

{

char grade;

printf("请输入您的成绩:\n");

scanf("%c",&grade);

switch(grade)

{

case 'A':

printf("优秀\n");

break;

case 'B':

printf("良好\n");

break;

case 'C':

printf("及格\n");

break;

case 'D':

case 'E':

printf("不及格\n");

break;

default:

printf("成绩错误!\n");

break;

}

return 0;

}

上述代码中,用户输入一个字母成绩,根据输入的成绩输出对应的等级。当用户输入的字母成绩无法匹配时,输出“成绩错误!”。

default子句

switch case语句中的default子句是可选的,当所有常量都与表达式不匹配时,会执行default子句中的语句块。以下是一个例子:

#include <stdio.h>

int main()

{

int num;

printf("请输入数字:\n");

scanf("%d",&num);

switch(num)

{

case 1:

printf("星期一\n");

break;

case 2:

printf("星期二\n");

break;

case 3:

printf("星期三\n");

break;

default:

printf("输入错误!\n");

break;

}

return 0;

}

上述代码中,用户输入一个数字,根据输入的数字输出对应的星期几。当用户输入的数字不是1、2、3时,输出“输入错误!”。

总结

以上就是switch case语句的基本用法,利用switch case语句可以使代码更加简洁易懂,提高程序的可读性。需要注意的是,在使用switch case语句时,表达式必须具有离散的值,常量必须是字面常量或枚举常量,变量是不允许的;default子句是可选的,如果所有常量都与表达式不匹配,则执行default子句中的语句块。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签