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

本文详细解释了Java中出现'缺少返回语句'错误的原因,通过实例说明如何正确处理循环结构中的return,并给出了常见误区和修复策略。包括修改while和if条件、理解Java编译器的逻辑,以及针对不同情况调整代码结构。
摘要由CSDN通过智能技术生成

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

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

27edadd4ee9f5d979a3f026ee7bd7cc8.png

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

9efa2a5b207cbf7b8666c60101fa83e2.png

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

a2372bbb42598c705bb0a7f5513f0608.png

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

59250377ba63988d7b045d7d1da47584.png

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

d3cb130e7c1ac2260fba55a9a15e0490.png

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

64282a8e59decfb9de556a88428023c3.png

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

#include

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

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

if (a[i]==3)

return true;

}

return false;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值