以下代码选择中奖号码。用户需要猜出中奖号码,并且通过switch
语句告诉他们可能获得什么奖品:
示例代码
#include <stdio.h>
int main(void)
{
int choice = 0; // 要选择的数字
// 提示输入数字
printf("输入一个1到10之间的数字:");
scanf("%d", &choice);
// 检查选择是否有效
if ((choice > 10) || (choice < 1)){
choice = 11; // 无效时设置一个值,用于显示
}
switch (choice)
{
case 7:
printf("祝贺!\n");
printf("奖品 : 7个香蕉.\n");
break;
case 2:
printf("奖品 : 2个红薯.\n");
break;
case 8:
printf("奖品 : 8个芒果.\n");
break;
case 11:
printf("仅限1到10之间的数字值,这次有点乱来了.\n");
// 这里没有 break语句
default:
printf("对不起,什么奖品也没有.\n");
break;
}
return 0;
}
执行上面示例代码,得到以下结果:
hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
输入一个1到10之间的数字:11
仅限1到10之间的数字值,这次有点乱来了.
对不起,什么奖品也没有.
怎么运行的?
上面示例代码中使用了switch
语句,它将选择符合条件的值:
switch(choice)
{
. . .
}
如果choice
的值为7
,则执行与该值对应的case
语句:
case 7:
printf("祝贺!\n");
printf("奖品 : 7个香蕉.\n");
break;
执行两个printf()
函数调用,break
将跳转到块的右括号后面的语句。
下一个case
语句有点不同:
case 11:
printf("仅限1到10之间的数字值,这次有点乱来了.\n");
// 这里没有 break语句
因为没有break
语句,因此在显示消息后,default:
语句中的printf()
继续执行。
默认情况是:
default:
printf("对不起,什么奖品也没有.\n");
break;
如果选择的值与任何其他case
值不对应,则将选择此选项。