• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

我用无参带返回方法做,为什么出现return b中的b未被定义呢?我前面已经定

我用无参带返回方法做,为什么出现return b中的b未被定义呢?我前面已经定义了,double b.

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与4

关键不在 b 没有初值!


就像你在前面回答中的疑问“我的if结构不能将b初始化吗?我在if对b进行了赋值了,为什么不可以呢?”
你想得没错。变量 b 在定义时没有初始化,但后面 if 结构将 b 初始化了的话是没问题的!


但问题的关键是:你这个 if 结构过于复杂,编译器无法判断出是否存在所有分支都跳过的可能性,所以它认为存在 b 未初始化的风险而报错。
如果你把最后一个分支加上 else 语句(同时也在其中赋予 b 适合的值),编译器可能就不会报错了。因为很容易就能推断出 if else 这样的结构中至少有一个分支会被执行。


当然这原因很可能是编译器相关的。不过在可能的情况下,明确给予每个变量合适的初值确实是个好习惯。

使用道具 举报

定义double的时候初始化一下,double b=0.0

使用道具 举报

萨芬的撒

使用道具 举报

一般在方法里定义变量的时候都要给他个初始值,除非你定义全局变量

使用道具 举报

发新帖

发布任务需求已有1031166位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!