您的位置:首页 > 资讯攻略

C语言中的Switch-Case语句示例

2024-11-12 09:03:05

编程领域中,C语言以其高效灵活的特性被广泛应用。其中,switch case语句是C语言中一种非常实用的控制结构,特别适用于多种条件判断的情况。下面,我们通过详细的例子来探讨C语言中switch case语句的具体用法。

C语言中的Switch-Case语句示例 1

在C语言中,switch语句提供了一种简洁的方式来处理多个可能的条件分支。它替代了多个if-else if-else语句,使得代码更加清晰易读。switch语句通常用于基于一个变量的值来执行不同的代码块。

首先,我们来看一个基本的switch case语句的例子:

```c

include

int main() {

int day;

printf("请输入一个星期中的天数 (1-7): ");

scanf("%d", &day);

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;

default:

printf("输入无效,请输入1到7之间的数字\n");

break;

return 0;

```

在这个例子中,程序首先提示用户输入一个星期中的天数,然后使用switch语句根据输入的值执行相应的代码块。每个case标签对应一个星期的天数,当输入的值与某个case标签匹配时,程序就会执行该case标签下的语句。如果所有的case标签都不匹配,则执行default标签下的语句。

需要注意的是,在每个case块的末尾,我们使用了break语句。break语句的作用是终止switch语句的执行,并跳出switch块。如果没有break语句,程序会继续执行下一个case块的语句,这通常不是我们想要的结果,称为“case穿透”。

下面是一个更复杂的例子,展示了如何使用switch case语句来处理字符输入:

```c

include

int main() {

char grade;

printf("请输入你的成绩等级 (A, B, C, D, F): ");

scanf(" %c", &grade); // 注意%c前的空格,用于跳过任何之前的空白字符

switch (grade) {

case 'A':

printf("优秀\n");

break;

case 'B':

case 'C':

printf("良好\n"); // 'C'的情况也会执行到这里,因为没有break

// 如果需要在'C'的情况下执行其他代码,可以在这里添加

// 但由于'B'和'C'共享相同的输出,这里不需要额外处理

// 如果要区分,可以在'C'的case中添加新的代码块并使用break

break; // 这个break是为了结束'B'和'C'共享的代码块

case 'D':

printf("及格\n");

break;

case 'F':

printf("不及格\n");

break;

default:

printf("输入无效,请输入A, B, C, D, 或 F\n");

break;

return 0;

```

在这个例子中,程序根据用户输入的字符来打印出相应的成绩等级。注意,'B'和'C'的case块共享了一段相同的代码。这是因为我们在这里不需要区分'B'和'C'的不同处理,所以没有在'C'的case块中使用break语句。但是,如果需要在'C'的情况下执行特定的代码,我们可以在'C'的case块中添加新的代码块并使用break语句来终止执行。

此外,在scanf函数中使用%c格式符时,我们通常在格式符前加上一个空格,这是为了跳过任何之前的空白字符(如换行符)。这是因为,当我们在前一个输入后按下回车键时,换行符会被留在输入缓冲区中,如果不使用空格来跳过它,scanf函数会立即读取这个换行符并导致输入失败。

再来看一个使用枚举类型和switch case语句的例子:

```c

include

enum Color { RED, GREEN, BLUE, YELLOW };

int main() {

enum Color favoriteColor;

printf("请输入你喜欢的颜色 (0: 红色, 1: 绿色, 2: 蓝色, 3: 黄色): ");

scanf("%d", &favoriteColor);

switch (favoriteColor) {

case RED:

printf

最新游戏
  • 最fun动漫网页版类型:影音娱乐
    大小:25.16M

    最fun动漫网页版是一个专注于动漫内容分享与观看的在线平台,...

  • 养女儿换装免广告版类型:模拟经营
    大小:92.23M

    养女儿换装免广告版是一款温馨而又充满乐趣的模拟养成游戏。在游...

  • 58影视类型:影音娱乐
    大小:86.89M

    58影视是一款集影视资源搜索、观看、分享于一体的综合性影视娱...

  • Arcaea国际服新版类型:益智休闲
    大小:52.68M

    Arcaea国际服新版简介 Arcaea国际服新版是一...

  • 临汾掌上公交app类型:出行导航
    大小:57.36M

    临汾掌上公交APP是一款专为临汾市民及到访临汾的乘客设计的公...

本站所有软件来自互联网,版权归原著所有。如有侵权,敬请来信告知 ,我们将及时删除。 粤ICP备2024192220号-3