初学Java编写HelloGoodbye条件程序运行报错如何修复?
问题原因
你的报错全部来自代码编写错误,和VS终端的运行方式无关,现有代码存在以下语法和结构问题:
- 类定义的大括号提前闭合,
printName方法被写到了HelloGoodbye类的外部,Java语法要求所有方法必须定义在类内部。 - 方法内的
return "my name is" + name语句写在了所有业务逻辑前面,且语句末尾缺少分号;return语句执行后会直接退出方法,后续的条件判断代码会变成永远无法执行的死代码,直接触发编译错误。 else if分支中判断的James没有加双引号,Java中字符串字面量必须用双引号包裹,直接写James会被识别为未定义的变量,触发编译报错。- 方法声明的返回值类型为
String,但方法内部只有打印操作,没有返回对应类型的结果,和方法签名不匹配;同时定义了从未使用的int number入参,属于冗余代码。 - 类中没有定义Java程序必需的
main入口方法,即使修复其他语法错误,终端运行时也会因为找不到执行入口无法启动程序。
修正后的可运行代码
public class HelloGoodbye { private static void printName(String name) { System.out.println("my name is " + name); if (name.equals("Kevin")) { System.out.println("Hello Kevin, Goodbye Kevin"); } else if (name.equals("James")) { System.out.println("Goodbye Kevin, Hello James"); } } public static void main(String[] args) { // 测试调用,可自行替换为控制台输入逻辑 printName("Kevin"); printName("James"); } }
运行说明
将代码保存为HelloGoodbye.java(文件名必须和public类名完全一致),在终端依次执行以下命令即可运行:
javac HelloGoodbye.java java HelloGoodbye
内容的提问来源于stack exchange,提问作者KeyError
相关产品推荐
相关产品推荐

