繁体   English   中英

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

[英]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未在您的代码中初始化

如果在块内定义变量( ifwhilefor等),则仅在该块内知道。 如果您也想在其外部使用它,则需要在对应的块之前定义。

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

您还需要首先对其进行初始化,因为它可能没有被返回,因此: int numofe = 0;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM