• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

定义判断质数的方法,奇怪的语法错误

025002ujokh6qjkjw6k1k1.jpg

错误提示如下:

025002v0qqe8f89qcqna4y.jpg

我明明有返回布尔值,为什么还出错?

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

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

使用道具 举报

全部参与4

最外层的if逻辑是严谨的,只要走到这里面就必须会有返回值;现在问题出在最外层的else没有绝对的最后返回值,虽然对于我们很直观地可以看到,for循环必然会至少执行一次,所以我们认为也必然会有返回值。但其实for循环归根结底也就是个判断语法,编译器在编译过程中并不认为a必须得大于2,换句话说for循环体有可能不被执行,即在这种情况下else米面的逻辑并没有返回值,这样编译器就会抛出如上所示错误。所以,这里可以用一个没有实际意义的返回(其实在实际运行中并不会执行到),骗过编译器,通过语法即可。示例如下(return true也可以,因为不会被执行):


025003rz6fvsfm4a6m04xi.jpg

使用道具 举报

举例来说,你28行的if如果不成立,则没有返回值。

使用道具 举报

你的问题出现在第一个if哪里, 现在假设程序运行到else代码块中,而假设a=0,那么程序就不会执行你的for循环,从而,你的else 代码块就结束了,这就是编译器为什么出错。因为出现 刚才的情况你的方法没有返回值了

使用道具 举报

编辑器并不能判断你一定进入那个分支,所以所有的if都要有else,并且if和else里都要有return,否则你就在最外面的ifelse外面再来一个return兜底,这里主要是第27行的if里面只有if,万一进了里面那个if的else,那就没有return了

使用道具 举报

发新帖

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

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

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