如何在函数中保存变量以再次使用?

时间:2018-06-22 20:23:33

标签: c++

我正在从事编码方面的入门工作,我想变得更好,所以我正在通过编写一个小程序进行练习。现在,我的目标是攻击一个怪物,然后显示其生命值,然后再次攻击并显示新的生命值。我尝试了许多不同的循环,但是每次程序都没有保存新的马力时,只是给了我相同的马力而不是将其浪费掉了。非常感谢您的帮助,我尝试过在线查找,但似乎找不到答案。

override func tableView(_ tableView: UITableView, willDisplayHeaderView view:UIView, forSection: Int) {
    if let headerTitle = view as? UITableViewHeaderFooterView {
        headerTitle.textLabel?.textColor = UIColor.black
        headerTitle.backgroundView?.backgroundColor = gainsBoro
    }
}

2 个答案:

答案 0 :(得分:0)

用于将值保存在function中的C++C中以供将来使用,您可以简单地将其声明为static,离开时我的意思是从函数中return 将该变量设置为您要保存的值。

答案 1 :(得分:0)

Onk_r有一个正确的答案:函数主体({})中的静态变量“粘在身边”。具体来说,用于初始化函数体内静态变量值的表达式仅执行一次,因此,下次您调用该函数时,其最后一个值将保持不变。

但是,这不能解决您的问题:您的代码是在每次使用变量时都会执行初始化该变量的表达式的假设而编写的。例如,当您使用名称damage时,程序将不会执行功能blade()。当您声明变量blade()时,损害只会收到一次damage返回的值:

int damage = blade();

该行在程序的整个生命周期中仅执行一次。同样,newHP仅在初始化时具有health - damage的值。初始化damage时,如果blade()返回8,则newHP将始终具有值42;

C ++不存储表达式。它评估他们。这就是类型系统所要确保的:存储在damage中的类型是int,它不能具有类型“ expression”(在C ++中不是这种东西,尽管可以通过各种方式实现类似的东西) )。分配变量时,将存储表达式的值,而不是如何计算表达式的值。每次用户攻击时,您确实需要执行以下操作:

newHP = health - blade(); /* Output message */ health = newHP;

像Norhther说的那样。

您也依赖于函数在此处存储状态,这不是,但是在C ++中,您可以而且通常应该做得更好。具体来说,class Hollow或更简单的struct Hollow会比main()内部浮动的一些变量更好。