首页 > 解决方案 > 努力让我的 switch 语句起作用

问题描述

我正在尝试创建一个 c++ 程序以在用户输入 0 和 9 之间的整数值时返回一个数字(拼写出来),任何人都可以找出我出错的地方吗?提前致谢!

#include <iostream>
using namespace std;

int main(){

    int numinput;
    string numberWritten;

    cout << "Enter a whole number between 0 and 9" << endl;
    cin >> numinput;

    switch (numinput) {
    case 0:
        numberWritten = "Zero";
        break;
    case 1:
        numberWritten = "One";
        break;
    case 2:
        numberWritten = "Two";
        break;
    case 3:
        numberWritten = "Three";
        break;
    case 4:
        numberWritten = "Four";
        break;
    case 5:
        numberWritten = "Five";
        break;
    case 6:
        numberWritten = "Six";
        break;
    case 7:
        numberWritten = "Seven";
        break;
    case 8:
        numberWritten = "Eight";
        break;
    case 9:
        numberWritten = "Nine";
        break;
    default: "Not a number I know";

    return numberWritten;
    }
}

标签: c++switch-statementcin

解决方案


将 替换为switch数组:

static const char * numbers_text[] = 
{
  "Zero", "One", "Two", "Three", "Four",
  "Five", "Six", "Seven", "Eight", "Nine",
};
//...
    cout << "Enter a whole number between 0 and 9" << endl;
    cin >> numinput;
    if ((num_input >= 0) && (num_input <= 9))
    {
        cout << numbers_text[numinput] << "\n";
    }
    else
    {
        cout << "Unsupported number.\n";
    }

switch数组或查找方法避免了语句的任何问题。

更少的代码行,更少的注入错误的机会。


推荐阅读