switch编程怎么弄

时间:2025-01-25 12:20:11 网络游戏

在C语言中,`switch`语句是一种多路选择结构,它根据一个表达式的值来选择执行不同的代码块。下面是一个基本的`switch`语句的使用示例:

```c

include

int main() {

int day = 0;

scanf("%d", &day);

switch(day) {

case 1:

case 2:

case 3:

case 4:

case 5:

printf("工作日\n");

break;

case 6:

case 7:

printf("休息日\n");

break;

default:

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

break;

}

return 0;

}

```

在这个例子中,`switch`语句根据变量`day`的值来选择执行不同的代码块。如果`day`的值是1到5之间的整数,程序将输出“工作日”。如果`day`的值是6或7,程序将输出“休息日”。如果`day`的值不是1到7之间的整数,程序将输出“输入错误”。

switch语句的语法

`switch`语句的基本语法如下:

```c

switch (expression) {

case constant1:

statement1;

break;

case constant2:

statement2;

break;

/* 可选的 */

default:

statementN;

}

```

`expression`:一个表达式,其结果用于与各个`case`标签的常量值进行比较。

`case constant1:`:一个`case`标签,后面跟一个常量表达式和一个冒号。

`statement1;`:与`case`标签对应的代码块。

`break;`:可选的语句,用于跳出`switch`语句。

`default:`:可选的`case`标签,用于处理所有未匹配的表达式值。

注意事项

每个case后面必须有break语句:

如果不使用`break`,程序将继续执行下一个`case`的代码块,直到遇到`break`或`switch`语句结束。这称为“fall-through”行为。

表达式类型:

`switch`语句的表达式可以是整型、枚举类型或类类型,但`case`标签的常量表达式必须是整型或枚举类型。

default分支:

如果没有匹配的`case`,且存在`default`分支,则执行`default`分支的代码块。

示例

```c

include

int main() {

int day = 0;

int month = 0;

int year = 0;

printf("请输入日期(格式:dd mm yyyy):");

scanf("%d %d %d", &day, &month, &year);

switch(month) {

case 1: case 3: case 5: case 7: case 8: case 10: case 12:

printf("%d年%d月%d日是工作日\n", year, month, day);

break;

case 4: case 6: case 9: case 11:

printf("%d年%d月%d日是工作日\n", year, month, day);

break;

case 2:

if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {

printf("%d年%d月%d日是工作日\n", year, month, day);

} else {

printf("%d年%d月%d日是休息日\n", year, month, day);

}

break;

default:

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

break;

}

return 0;

}

```

在这个示例中,`switch`语句根据月份来判断日期是工作日还是休息日,并考虑了闰年的情况。