2013-11-25 59 views
-3

我试图创建一个整型变量创建变量的if语句体是这样的:如何在C++中的if语句体

if (a == 72){ 
     cout <<"You Are CORRECT1"<<endl; 
     int aa = 1; 
    } 
    else{ 
     cout <<"No. The answer is "<<12*6<<endl; 
     int aa = 2; 
    } 

当我编译这一点,说: 42 C:\Documents and Settings\Valued Customer\Desktop\C++\Variable.cppaa未经宣布(首先使用这个功能)

你能帮我吗。

+0

此代码不会给出编译器错误。 –

回答

1

您可以使用条件运算符这种情况:

int aa = a == 72 ? 1 : 2; 

这使您可以初始化基于条件的变量,这东西不能用if-else语句来完成。不过,您将不得不分别写入stdout

+0

反对的任何理由? – juanchopanza

1

当您在if/else语句之外时,很可能会告诉您这一点。在您给出的示例中,您正在创建ifelse范围内的局部变量。他们超出范围,在“if/else”之后“停止存在”。

这里的方式,你应该这样做:

int aa = -1; 
if (a = 72) 
{ 
    cout << "You are CORRECT1" << endl; 
    aa = 1; 
} 
else 
{ 
    cout << "No. The answer is " << 12 * 6 << endl; 
    aa = 2; 
} 
cout << aa << endl; 

通过做这种方式,你声明的int if/else代码块的范围之外,所以可变继续生存下去,并且可以访问在该代码块之外。

+1

感谢您的帮助,我只是C++的初学者,并且您做了很好的解释。 – user2948288

+0

@ user2948288:欢迎来到Stackoverflow!请尽快阅读[关于](http://stackoverflow.com/about)页面。现在请阅读[帮助!有人回答我的问题!](http://meta.stackoverflow.com/help/someone-answers) – usr2564301

2

声明变量之前像这样。

int aa; 
if (a == 72) 
    { 
    cout <<"You Are CORRECT1"<<endl; 
    aa = 1; 
    } 
    else{ 
    cout <<"No. The answer is "<<12*6<<endl; 
    aa = 2; 
    } 
2

您的变量声明是正确的,问题是您的变量的生命周期只在其声明的块内有效。任何在此块外使用它的尝试都是无效的。