switch case 语句
switch case 语句
switch case 语句是用于替代长 if 语句,用于比较变量与多个"整型"值(整型值是指可以表示为整数的值,例如 char 的值)。使用 switch case 的基本格式如下。将 switch 语句中变量的值与每个 case 后面的值进行比较,当某个值与变量的值匹配时,计算机将从该点继续执行程序。
switch ( 变量 ) {
case 这个值:
如果 变量 == 这个值 执行这个代码
break;
case 那个值:
如果 变量 == 那个值 执行这个代码
break;
...
default:
如果 变量 不等于前面任何一种情况的值,则执行这个代码
break;
}switch 语句的条件是一个值。case 语句表示如果它具有 case 后面的值的值,则执行冒号后面的内容。break 用于跳出 case 语句。break 是一个关键字,用于跳出代码块,通常由它所在的大括号包围。在这种情况下,break 防止程序继续执行其他 case 语句中的代码。关于 switch 语句需要注意的重要一点是,case 值只能是常量整型表达式。遗憾的是,使用 case 语句的方式是不合法的:
int a = 10;
int b = 10;
int c = 20;
switch ( a ) {
case b:
/* Code */
break;
case c:
/* Code */
break;
default:
/* Code */
break;
}默认情况是可选的,但建议包含它,因为它可以处理任何意外的情形。如果你不期望进入默认情况,那么在其中添加某种输出以提醒你代码进入了默认情况会很有用。当条件满足时,switch 语句可以用作编写长 if 语句的一种简单方式。它通常可以用来处理用户的输入。
下面是一个示例程序,其中并非所有正确的函数都实际声明了,但它展示了如何在程序中使用 switch。
#include <stdio.h>
void playgame()
{
printf( "调用“开始游戏”" );
}
void loadgame()
{
printf( "调用“加载游戏”" );
}
void playmultiplayer()
{
printf( "调用“多人游戏”" );
}
int main()
{
int input;
printf( "1. 开始游戏\n" );
printf( "2. 加载游戏\n" );
printf( "3. 多人游戏\n" );
printf( "4. 退出\n" );
printf( "选择: " );
scanf( "%d", &input );
switch ( input ) {
case 1: /* 注意冒号,而不是分号 */
playgame();
break;
case 2:
loadgame();
break;
case 3:
playmultiplayer();
break;
case 4:
printf( "谢谢你的参与!\n" );
break;
default:
printf( "输入错误,退出!\n" );
break;
}
getchar();
}这个程序可以编译,但在未定义函数被赋予具体实现之前无法运行,但它可以作为处理输入的一个模型(尽管很简单)。如果你不理解这一点,可以尝试在脑海中为 case 语句添加 if 语句。Default 会直接跳出 switch case 结构,让程序自然终止。如果你不喜欢这样,可以围绕整个结构做一个循环,让它等待有效输入。如果你愿意,可以轻松地编写几个小函数来测试代码。
