我不断地得到错误
error : switch expression does not have any result expressions
在终端上编译时。
error:missing return statement
在switch语句的末尾。这是在用终端编译的时候。
public class Lec2{
public static void main(String[] args) {
if (args.length != 3) {
System.out.println("usage: [year] [month] [day]");
System.exit(1);
}
int y = Integer.parseInt(args[0]);
int m = Integer.parseInt(args[1]);
int d = Integer.parseInt(args[2]);
Day day = new Day(y, m, d);
String week = day.dayOfWeek();
System.out.println(y + "/" + m + "/" + d + " is " + week);
}
}
class Day {
private static final int MIN_YEAR = 1583;
//private variables
private int year;
private int month;
private int date;
//TODO: implement setters and getters
public int getYear() {
return year;
}
public int getMonth() {
return month;
}
public int getDay() {
return date;
}
public void setYear(int year) {
if(year < 1583) {
System.err.println("year should be >= 1583");
System.exit(1);
}
}
public void setMonth(int month) {
}
public void setDate(int date) {
}
//constructor
public Day(int year, int month, int date){
this.setYear(year);
this.setMonth(month);
this.setDate(date);
}
public String dayOfWeek(){
if(month ==1) {
month = 13;
year--;
}
if(month ==2) {
month = 14;
year--;
}
int y = this.getYear();
int m = this.getMonth();
int d = this.getDay();
//TODO: implement Zeller's congruence
int h = d + 13*(m + 8) / 5 + y / 400 - y / 100 + y / 4 + y;
h = h % 7;
switch (h){
//TODO: implement conversion from h to week string
case 0: return("Sunday");
case 1: return("Monday");
case 2: return("Tuesday");
case 3: return("Wednesday");
case 4: return("Thursday");
case 5: return("Friday");
case 6: return("Saturday");
}
}
}
开关不返回任何东西,它与它内部发生的任何事情有关。
switch (h){
//TODO: implement conversion from h to week string
case 0: return("Sunday");
case 1: return("Monday");
case 2: return("Tuesday");
case 3: return("Wednesday");
case 4: return("Thursday");
case 5: return("Friday");
case 6: return("Saturday");
}
当交换机分支调用void返回类型的方法时,有没有办法强制对所有枚举值进行彻底检查?仅仅为了诱使编译器要求穷尽性而对产量进行硬编码是非常丑陋的。 这是我当前的模式(handle方法具有void返回类型) 我想使用表达式的原因是在添加新枚举值但未处理时出现编译错误。
我不明白第77行不能从这个开始,但我用“public String showTrack()”开始了类似的内容。 这是我当前的代码:
我正在从其他框架生成一个JTabbedFrame。
问题内容: 我基本上是在完善,完成并尝试从Java初学者的参考书中编译测试代码。目的是创建一个猜谜游戏,其中目标位于3个连续的单元格中(我将位置保持在数组中),而用户则猜测该单元格的编号。逐个摧毁目标细胞。 我在这里检查了六则关于同一错误的帖子,但我无法弄清楚出了什么问题。 这是我的错误: 我的代码是: 问题答案: 方法只能声明局部变量。这就是为什么当您尝试将其声明为public时,编译器会报告错
我基本上是在精炼、完成并尝试从java初学者参考书中编译测试代码。目标是创建一个猜测游戏,其中目标位于3个连续的单元中(我在阵列中保留位置),用户猜测单元号以逐个单元摧毁目标单元。 我在这里查看了六篇关于同一个错误的帖子,但我不知道出了什么问题。 这是我的错误: 我的代码是:
将异常获取为 :lambda表达式中的返回类型错误: