如果我放了一段代码,如
,我试图这样做if ((variable1 - variable2) < 0)
int variable5 = (variable3 + variable4);
但这似乎对我不起作用。所以我想知道是否有人有解决方案?
答案 0 :(得分:6)
您正在尝试声明变量作为if
语句体中的唯一语句。这是不允许的,因为它没有意义 - 变量将在之后立即超出范围。您应该首先声明变量:
int variable5 = 0; // Or whatever value you want otherwise
if (variable1 - variabl < 0)
variable5 = variable3 + variable4;
或者,如果您只需要if
语句正文中的变量,则需要更多语句:
if (variable1 - variabl < 0) {
int variable5 = variable3 + variable4;
// Use variable5
}
我强烈建议您始终使用带有if
语句(和循环等)的大括号。
答案 1 :(得分:0)
如果您只使用1个语句作为if
的正文,则无法声明局部变量。
试试这个:
int variable5 = 0; // Default value
if (variable1 - variable < 0)
variable5 = variable3 + variable4;
答案 2 :(得分:0)
你在if中定义你的整数,如果是块,它就是一行,所以变量只是声明然后被删除,因为它超出了范围 -
if ((variable1 - variable) < 0)
int variable5 = (variable3 + variable4);
在外面宣布 -
int variable5 = 0;
if ((variable1 - variable) < 0)
variable5 = (variable3 + variable4);
答案 3 :(得分:0)
根据您的代码,您可以在&#34;条件&#34;返回true。 因此,只要条件&#34;的代码块一起;结束,你的块变量&#34;变量5&#34;被毁了。所以你不能使用它。
在if条件块之前声明它并在块中为其赋值 或者,如果您希望它在if条件块中声明,请仅在该块内使用它!