[英]Where should I initialize a variable to work in an IF block?
我正在尝试在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
未在您的代码中初始化
如果在块内定义变量( if
, while
, for
等),则仅在该块内知道。 如果您也想在其外部使用它,则需要在对应的块之前定义。
在这种情况下,您不能定义内部if
因为不知道而return(numofe>0 && numofe<4
。您需要在if
和for
之前定义它。
您还需要首先对其进行初始化,因为它可能没有被返回,因此: int numofe = 0;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.