2017-09-13 95 views
0

所以我一直在试图找出一段时间的布尔功能。 我想这样做后,输入一个特定的值,布尔将成为真或假。如何在C++中改变布尔值?

#include <iostream> 

using namespace std; 

int a; 
bool dead; 

void Life() { 
    if (dead == true) { 
     cout << "You ded."; 
    } 
    else { 
     cout << "You not ded."; 
    } 
} 

int main() 
{ 
    cin >> a; 
    if (a == 10) 
    { 
     bool dead = true; 
    } 
    Life(); 
    return 0; 
} 

这是我目前有,但它不改变布尔的价值。有任何想法吗?

回答

0

你在main的if块中重新声明变量'dead'。所以现在你有两个'bool dead',一个是全局的,而另一个是main的if块。语句'bool dead = true'设置本地语句,但函数'Life()'使用全局语句。只需从后者中删除'布尔',你将永远使用全球。

#include <iostream> 

using namespace std; 

int a; 
bool dead; 

void Life() { 
    if (dead == true) { 
     cout << "You ded."; 
    } 
    else { 
     cout << "You not ded."; 
    } 
} 

int main() 
{ 
    cin >> a; 
    if (a == 10) 
    { 
     dead = true; 
    } 
    Life(); 
    return 0; 
} 
+0

非常感谢! – Vii

0

有两个变量叫做dead。 - 全局 - 本地哪个生命周期是if块

您只在if块内设置局部变量。所以你不要改变全局变量。删除if块内的类型,程序可以按照你的意图运行。不要忘记初始化你的全局死变量。根据操作系统和状态,您的全局变量可能会以真值开始。