【问题标题】:Code that determines alphabetization in a string--return variable initialization errors确定字符串中字母顺序的代码——返回变量初始化错误
【发布时间】:2019-07-13 18:09:38
【问题描述】:

我正在尝试编写代码来确定字符串中的字符是否按字母顺序排列,但我不断得到一个

返回变量可能没有被初始化

错误。我很确定我已经考虑了所有可能性,所以我不确定我的代码哪里出错了。

【问题讨论】:

  • 欢迎来到 Stack Overflow!请访问help center 了解内容和How to Ask。提示:发布工作和代码,而不是代码图片也JAVA is NOT JavaScript
  • @ArunKumar 我从不投票给新用户
  • 但是一些疯狂的用户在做这些事情:)
  • 错误信息用简单的英语完全回答了这个问题
  • int 在 java 中不能为空

标签: java


【解决方案1】:

缺少的是您需要在此处初始化布尔变量 alphabetical,因为您没有在最外层 if-else 条件的条件中提供 else。尽管您已经在逻辑上涵盖了所有可能的路径,但您也需要让编译器知道这一点。编译器担心可能存在一个代码路径,其中字母顺序从未被初始化,因为没有指定 else 或默认条件。

有两种方法可以解决您的问题:

1>字母应该设置为默认值(永远不会使用)

2> 将else if(length!=1) 替换为简单的else

【讨论】:

  • 好答案。我发了一个类似的,但你打败了我,所以我删除了我的。我只是想向 OP 说明,他认为他涵盖了所有可能性是正确的,而正是他这样做的方式(进行了不必要的最终测试)导致编译器不确定他有。
  • 谢谢!我不知道为什么很多人甚至不喜欢这个问题......
【解决方案2】:

您尚未使用任何默认值初始化变量 alphabetical。为它分配一个默认值 true 或 false。 JVM 不太确定在执行过程中 if 是否会满足条件,因此它会给出此消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    相关资源
    最近更新 更多