现在的代码

  1. int main()
  2. {
  3. char card_name[3];
  4. puts("输入牌名: ");
  5. scanf("%2s", card_name);
  6. int val = 0;
  7. if (card_name[0] == 'K') {
  8. val = 10;
  9. } else if (card_name[0] == 'Q') {
  10. val = 10;
  11. } else if (card_name[0] == 'J') {
  12. val = 10;
  13. } else if (card_name[0] == 'A') {
  14. val = 11;
  15. } else {
  16. val = atoi(card_name);
  17. }
  18. /* 检查牌的点数是否在3到6之间 */
  19. if ((val > 2) && (val < 7))
  20. puts("计数增加");
  21. /* 否则,检查牌是否为10、J、Q或K */
  22. else if (val == 10)
  23. puts("计数减少");
  24. return 0;
  25. }

现在的代码 - 图1

C程序经常需要多次检查同一个值,并且在每一种情况中执行非常类似的代码片段。

可以使用一连串的if语句,这没有错,但对于这种逻辑,C语言提供了替代的写法。

C语言可以用switch语句进行逻辑测试。