为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕码人2483693 2021-12-30 16:11:08
我正在尝试在 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);}
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

块中的变量应该在使用之前进行初始化,用初始值初始化它们,它可以是任何允许的值。但是你不能在没有先初始化它们的情况下使用它们。

int numofe=0;

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


查看完整回答
反对 回复 2021-12-30
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

如果你定义一个块中的变量(ifwhilefor,等...),它是唯一已知的是块内。如果你也想在它/它们之外使用它,你需要在对应的块之前定义。

在这种情况下,您无法定义 insideif因为它不知道您return(numofe>0 && numofe<4。您需要在if和之前定义它for

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


查看完整回答
反对 回复 2021-12-30
  • 2 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信