所以我是一个绝对的初学者,刚开始学习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;
}
答案 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.