我根据找到的练习编写了一个简短的程序here (评分程序),我想知道是否可以(出于好奇)用{/ 1}}替换带有switch / case语句的if语句。此外,欢迎提供额外的反馈,因为这里实施的一些内容对我来说是新的。
部首:
.cpp
.cpp的:
// include guard
#ifndef __MAINLAUNCH_H_INCLUDED__
#define __MAINLAUNCH_H_INCLUDED__
using namespace std;
class MainLaunch
{
int *grade;
public:
MainLaunch();
MainLaunch(int&);
~MainLaunch();
string getLetterGrade ();
int getGrade() {return *grade;};
};
#endif //__MAINLAUNCH_H_INCLUDED__
答案 0 :(得分:3)
switch ((y - 1) / 10)
{
case 9: return y == 100 ? "Perfect score!" : "A";
case 8: return "B";
case 7: return "C";
case 6: return "D";
default: return "F";
}
如果比较是>=
,那就不那么难了 - 你可以这样做:
switch (y / 10)
{
case 10: return "Perfect score!";
case 9: return "A";
case 8: return "B";
...etc...
你确定他们不是那样的吗? 90岁是一个'A'在我的学校比在91岁时更常见....
更新:查看你的链接(有一个较早的步骤为100 =“完美得分!” - 如果你想在下一步中继续闲逛,我也很好)
★★修改程序,以便通知用户他们的字母等级
0-59 F 60-69 D 70-79 C 80-89 B 90-100 A
所以y / 10确实合适......
答案 1 :(得分:1)
与C ++中的许多内容一样,它绝对可以通过多种方式实现。 有时它只是不是一个好主意。
这就是switch语句的样子:
switch(y)
{
case 100:
return "Perfect Score!";
break;
case 99:
case 98:
case 97:
case 96:
case 95:
case 94:
case 93:
case 92:
case 91:
return "A";
break;
case 90:
case 89:
case 88:
case 87:
case 86:
case 85:
case 84:
case 83:
case 82:
case 81:
return "B";
break;
case 80:
case 79:
case 78:
case 77:
case 76:
case 75:
case 74:
case 73:
case 72:
case 71:
return "C";
break;
case 70:
case 69:
case 68:
case 67:
case 66:
case 65:
case 64:
case 63:
case 62:
case 61:
return "C";
break;
default:
return "F";
break;
}
它也会限制你只使用整数,因为switch语句只适用于它们