对于上课,我做了一个基于回合制的格斗游戏,通过以下方式跟踪用户的健康状况:Player.HP = 100;
(在结构内)
用cout << "Health: " << Player.HP << endl;
do while循环一旦健康或计算机对手的健康等于或小于0就退出
} while ((Player.HP >= 0) && (com.HP >= 0));
例如,如果健康状况等于-14,是否有办法以比使用if语句更清晰的方式将其打印为0?
答案 0 :(得分:7)
您可以使用inline if编写if语句:
cout << "Health: " << (Player.HP >= 0 ? Player.HP : 0) << endl;
如果它大于或等于零,则打印Player.HP
,否则打印为零。
答案 1 :(得分:6)
一种方法是std::max
......
std::cout << "Health: " << std::max(Player.HP, 0) << '\n';
答案 2 :(得分:6)
使用getter函数提取行为:
class Player {
int HP;
public:
int getHP() const { return HP > 0 ? HP : 0; }
}