Java提示缺少返回语句的解决办法

Java提示缺少返回值语句怎么办?这里我们给大家提供具体的解决方法。

首先,以下面的程序为例,会看到在控制台有:错误:缺少返回语句的提示。

找到类中定义的方法test中发现,明明已经定义了return,软件依然会提示错误。

将return定义到for循环之外,就会发现,程序不再报错。

原因是因为数组不仅仅可以存放具体的变量值,而且可以不赋给数组任何值。

在数组内容为空的情况,程序是没有报错的,所以需要将return返回值定义到   for 循环之外即可。

关于Java中return缺少返回语句的解决方法总结如下:

Java 编译错误:缺少返回语句

import java.util.*;
import java.io.*;

public class tt {
  public static void main(String[] args) {
    foo();
  }

  public static String foo() {
    int i=0;
    while(i<10) {
      return "ggg";
    }
  }
}

该函数编译便会报错:缺少返回语句。尽管看起来(i<10)是肯定为真的,但是编译器不会把i=0带进去算,所以它觉得foo函数有可能无返回值(即while后条件为假的时候)。

同理,把while改成if,编译报同样的错误。

把while(i<10)改为while(true)后,不再报错。

但是C就随意得多,跟Java比起来以下如此不确定的代码也能正常编译运行:

#include <stdlib.h>
#include <stdio.h>

int main()
{
  int a=foo();
  printf("%d\n",a);
  return 0;
}

int foo()
{
  int i=0;
  while(i++<10)
  {
    if(i>5) return 5;
    else return 4;
  }
}

再举个java例子:

这么写会提示缺少返回语句,

public static boolean has3(int[] a) {
  for(int i=0; i<a.length; ++i) {
    if (a[i]==3)
      return true;
    else
      return false;
  }
}

稍稍改动一下即可:

import java.util.*;
import java.io.*;

public class has {
  public static void main(String[] args) {
    int[] b = {1,2,3,4,5};
    int[] c = {1,2,4,5};
    System.out.println(has3(b));
    System.out.println(has3(c));
  }

  public static boolean has3(int[] a) {
    for(int i=0; i<a.length; ++i) {
      if (a[i]==3)
        return true;
      }
    return false;
  }
}
(0)

相关推荐

  • Java 读取指定路径的文本文件并返回String的方法

    如下所示: import java.io.*; /** * Created by liuyikai on 2016/8/13. */ public class FileUtil { public static String LoadContentByPath(String path) throws IOException { InputStream is = new FileInputStream(path); BufferedReader in = new BufferedReader(new

  • java发起http请求获取返回的Json对象方法

    话不多说,先看代码! /** * Created by david on 2017-7-5. */ import com.google.gson.JsonObject; import com.google.gson.JsonParser; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import ja

  • java api返回值的标准化详解

    api返回值的标准化 例如 {"status":200,"message":"操作成功","data":"{\"id\":1,\"name\":\"张三\"}"} 封装返回对象 对象被封装在base.util.ResponseUtils类型下,返回值是标准的ResponseEntity对象,返回体进行了二次封装,主要有status,messsage

  • 实现Java线程的取值并返回的方法

    如何让一个线程不断跑起来,并且在取到值的时候能返回值而线程能继续跑呢? 我们都知道可以用Callable接口获得线程的返回值,或者触发事件监听来操作返回值,下面我将介绍另一种方法. public abstract class Test implements Runnable { public String A; //开启线程 public void run() { while(true) { //此处写该方法的逻辑代码 //listen()方法操作取得值A listen(A); } } //定义

  • Java提示缺少返回语句的解决办法

    Java提示缺少返回值语句怎么办?这里我们给大家提供具体的解决方法. 首先,以下面的程序为例,会看到在控制台有:错误:缺少返回语句的提示. 找到类中定义的方法test中发现,明明已经定义了return,软件依然会提示错误. 将return定义到for循环之外,就会发现,程序不再报错. 原因是因为数组不仅仅可以存放具体的变量值,而且可以不赋给数组任何值. 在数组内容为空的情况,程序是没有报错的,所以需要将return返回值定义到   for 循环之外即可. 关于Java中return缺少返回语句的

  • mybatis-plus3.0.1枚举返回为null解决办法

    mybatis-plus 3.0.1 枚举返回为null解决办法 2020-11-02 14:28:48 今天再次回到代码里无意间看到,原来和mybatis-plus没有关系!发生这个问题的根本原因还是要看是否在对应的Mapper.xml里指定了jdbcType.由于我使用了IDEA的代码生成插件,所以没有再进一步去研究为什么返回的数据类型会是以BigDecimal包装的,就此闹了个笑话.. 结论:枚举类用EnumValue注解修饰的数据类型,例如是Integer,那么在Mapper.xml中的

  • Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法

    一.发现问题 在尝试编辑博客站点的Wordpress主题时,突然发现博客站点无法连接:刷新后提示"建立数据库连接错误"之类的错误.自然想到是mysql可能出错了,所以就登陆了VPS主机,尝试启动mysql服务,但是提示failed. 二.解决方法 1.打开/var/log/mysql/error.log文件,查看出错日志.在阅读日志时发现第一条错误提示是:[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrad

  • Android在view.requestFocus(0)返回false的解决办法

    我们有时候想让listview的第一行自动获取到焦点,我们就会使用view.requestFocus(0)来操作,而有时候并不生效,debug后显示rerurn为false. 这是因为我们获取焦点太早,listview控件还为加载完毕.可以尝试一下方法解决: listview.post(new Runnable(){ @Override public void run(){ view.requestFocus(0); } }); 以上所述是小编给大家介绍的Android在view.request

  • java 出现NullPointerException的原因及解决办法

    java 出现NullPointerException的原因及解决办法 日常开发过程中,最常见的异常莫过于NullPointerException,之前的时候,只是知道去找到报错的位置,然后去解决它,最近有空学习C语言,就去深究了下NullPointerException异常的本质. 发生NullPointerException的情况: 调用 null 对象的实例方法. 访问或修改 null 对象的字段. 如果一个数组为null,试图用属性length获得其长度时. 如果一个数组为null,试图

  • java 防盗链详解及解决办法

     java 防盗链详解及解决办法 一.防盗链的概念 内容不在自己的服务器上,通过技术手段将其他网站的内容(比如一些音乐.图片.软件的下载地址)放置在自己的网站中,通过这种方法盗取其他网站的空间和流量. 二.防盗链的产生 一般情况下,http请求时,一个完整的页面并不是一次全部传送到客户端的.如果请求的是一个带有许多图片和其它信息的页面,那么最先的一个Http请求被传送回来的是这个页面的文本,然后通过客户端的浏览器对这段文本的解释执行,发现其中还有图片,那么客户端的浏览器会再发送一条Http请求,

  • 详解php中curl返回false的解决办法

    首先来看一个封装的curl函数 function request_post($url = '', $param = '') { if (empty($url) || empty($param)) { return false; } $postUrl = $url; $curlPost = $param; $curl = curl_init();//初始化curl curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页 curl_setopt($curl

  • java.lang.OutOfMemoryError 错误整理及解决办法

    java.lang.OutOfMemoryError处理错误 java.lang.OutOfMemoryError异常解决方法 原因: 常见的有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 3.代码中存在死循环或循环产生过多重复的对象实体: 4.使用的第三方软件中的BUG: 5.启动参数内存值设定的过小: 常见错误提示: 1.tomcat:java.lang.OutOfMemoryError: Perm

  • PHP提示Notice: Undefined variable的解决办法

    PHP默认配置会报这个错误,我的PHP版本是5.2.13,存在这个问题: Notice: Undefined variable 这就是将警告在页面上打印出来,虽然这是有利于暴露问题,但实现使用中会存在很多问题. 需要设置显示错误级别,来解决问题. 网络上的通用解决办法是修改php.ini的配置: 解决方法: 1) error_reporting设置: 找到error_reporting = E_ALL 修改为error_reporting = E_ALL & ~E_NOTICE 2) regis

  • 开通虚拟主机时提示Server.CreateObject失败的解决办法

    如果您在开通虚拟主机或注册用户时看到以下的错误信息: Server 对象 错误 'ASP 0177 : 8007007e' Server.CreateObject 失败 /inc-freehost-function/FreeHostFunctionMain.asp,行 694 8007007e 造成这个问题的原因是:您在主控服务器上安装了杀毒软件,杀毒软件删除了 jmail组件用的jmail.dll造成的, 解决办法 重新在网上下载jmail.dll安装它,例如可以在以下网址下载: http:/

随机推荐