前言
运用switch语句写了一个小程序,功能如下:
输入王者荣耀里的英雄缩写,输出对应永雄别名/称号/封号。
程序只支持部分英雄缩写,原因是作者懒得敲代码了,部分代码已经能够演示函数功能。
switch语句是什么?
示例:
switch ( 整型表达式)
{
case 常量1:
语句 <–可选
case 常量2:
语句 <–可选
default : <–可选
语句 <–可选
}
1.完整代码
代码如下(示例):
#include <stdio.h>
#include <string.h>
int main(void)
{
char ch[5]={'0','0','0','0','0'};
int a;
while (ch[0] != '#') //输入 # 终止
{
printf("输入王者荣耀英雄首字母缩写:\n ");
scanf_s("%s", ch, 40);//输入英雄缩写
a = strlen(ch); //得到英雄缩写长度
switch (a)
{
case 1: //一字
{if (ch[0] == 'f')
printf("玉城王子\n");
if (ch[0] == 'l')
printf("鲨之猎刃\n");
if (ch[0] == 'j')
printf("破镜之刃\n");
if (ch[0] == 'y')
printf("星辰之子or鹿灵守心\n");
if (ch[0] == 'k')
printf("破灭刃锋\n");
else printf("此英雄尚未添加!\n"); }
break;
case 2://二字
{if (ch[0] == 'j' && ch[1] == 'c')
printf("渡世行者\n");
if (ch[0] == 'y' && ch[1] == 'y')
printf("燎原之心\n");
if (ch[0] == 'a' && ch[1] == 'l')
printf("精灵之舞\n");
if (ch[0] == 'm' && ch[1] == 'y')
printf("烈炮小子\n");
if (ch[0] == 'x' && ch[1] == 's')
printf("幻纱之灵\n");
if (ch[0] == 'm' && ch[1] == 'c')
printf("冷晖之枪\n");
else printf("此英雄尚未添加!\n"); }
break;
case 3://三字
{if (ch[0] == 's' &&ch[1] == 'w' && ch[2] == 'k')
printf("齐天大圣\n");
if (ch[0] == 'x' && ch[1] == 'l' && ch[2] == 't')
printf("玫瑰剑士\n");
if (ch[0] == 'a' && ch[1] == 'g' && ch[2] == 'd')
printf("山林之子\n");
else printf("此英雄尚未添加!\n"); }
break;
case 4://四字
{if (ch[0] == 'l' && ch[1] == 'b'&& ch[2] == 'd' && ch[3] == 's')
printf("神匠\n");
if (ch[0] == 's' && ch[1] == 'g' && ch[2] == 'w' && ch[3] == 'e')
printf("惊鸿之笔\n");
if (ch[0] == 'g' && ch[1] == 'j' && ch[2] == 'm' && ch[3] == 'y')
printf("淬命双剑\n");
else printf("此英雄尚未添加!\n"); }
break;
default:
printf("此英雄尚未添加!\n");
} /* switch结束 */
}
return 0;
}
2.运行结果
代码如下(示例):
输入王者荣耀英雄首字母缩写:
agd
山林之子
输入王者荣耀英雄首字母缩写:
hhh
此英雄尚未添加!
输入王者荣耀英雄首字母缩写:
#
此英雄尚未添加!
总结
使用条件运算符和 if else 语句很容易编写二选一的程序。然而,有时程
序需要在多个选项中进行选择。可以用if else if…else来完成。但是,大多数
情况下使用switch语句更方便。