我应该在哪里初始化一个变量以在IF块中工作



我正试图在CodingBat:上解决这个问题

如果给定字符串包含1到3个'e'字符,则返回true。

到目前为止,我有这个解决方案,但如果我在if块内初始化了"numofe"整数,它就不会编译,因为代码的其他部分无法使用它,反之亦然。那么,我应该在哪里初始化一个变量,以便在代码中的任何地方都可以访问呢?

谢谢。

public boolean stringE(String str) {
int numofe;
for(int x = 0; str.length() > x; x++){
if (str.charAt(x)=='e'){
numofe++;
}
}
return (numofe>0 && numofe<4);
}

块中的变量应该在使用它们之前进行初始化,使用初始值对它们进行初始化,该值可以是任何允许的值。但是如果不首先初始化它们,就不能使用它们。

int numofe=0;

这不会编译numofe++;,因为numofe没有在代码中初始化

如果在块(ifwhilefor等(内定义变量,则仅在该块内已知。如果你也想在it/them之外使用它,你需要在对应块之前进行定义。

在这种情况下,您不能在if内部定义,因为它不知道您是return(numofe>0 && numofe<4。您需要在iffor之前定义它。

您还需要首先初始化它,因为它可能会在没有被返回的情况下被返回,所以:int numofe = 0;

最新更新