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; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix