如何将负数打印为0?

时间:2016-10-10 05:32:58

标签: c++

对于上课,我做了一个基于回合制的格斗游戏,通过以下方式跟踪用户的健康状况:Player.HP = 100;(在结构内)

cout << "Health: " << Player.HP << endl;

打印

do while循环一旦健康或计算机对手的健康等于或小于0就退出

} while ((Player.HP >= 0) && (com.HP >= 0));

例如,如果健康状况等于-14,是否有办法以比使用if语句更清晰的方式将其打印为0?

3 个答案:

答案 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; }
}