Switch Statement不会添加到total变量

时间:2017-09-19 20:43:27

标签: c++

所以我是一个绝对的初学者,刚开始学习C ++。我们最近在课堂上讨论了switch语句。我试图制作一个使用switch语句的个性测试类型程序。但是,我不确定我是否正确使用它。它拒绝添加到我的总变量中。

基本上,我根据他们希望选择的答案输入用户输入1-4,然后我想基于该答案计算点数。这就是我所拥有的。 int inanswer是" 1"的变量。或者" 4"是写的。 int totalpts是到目前为止的总分数。

我做错了什么?

switch(inanswer){
    case '1':
        totalpts += 1;
        break;
     case '2':
        totalpts += 2; 
        break;
     case '3':
        totalpts += 3;
        break;
     case '4':
        totalpts += 4;
        break;
}

3 个答案:

答案 0 :(得分:0)

你的变量“inanswer”是一个int吗?您正在根据字符值对其进行测试。尝试:

case 1:
    totalpts += 1;
    break;
 case 2:
    totalpts += 2; 
    break;

等。而不是

 case '1':
    totalpts += 1;
    break;
 case '2':
    totalpts += 2;
    break;
    ...

答案 1 :(得分:0)

switch(inanswer){
    case 1:
        totalpts += 1;
        break;
     case 2:
        totalpts += 2; 
        break;
     case 3:
        totalpts += 3;
        break;
     case 4:
        totalpts += 4;
        break;
}

试试这样。 我希望inanswer是int。

答案 2 :(得分:0)

您的用户将在键盘上键入一个字符(不计算字母所暗示的整数)?

然后尝试

>>> lst3
[[[[1, 2], [3, 4]], [[5, 6, 7], [8, 9, 10]]], [[[11, 12], [13, 14]], [[15, 16, 17], [18, 19, 20]]]]

然后,您可以将switch语句重构为:

switch(inanswer){
    case '1':
        totalpts += inanswer - '0';
        break;
    ... etc.