我对任何编程都很陌生并且正在学习java。我有一个任务,但不断收到错误,不确定如何解决。感谢任何帮助,因为这项任务比我尝试的任务要复杂得多。 我遇到的主要问题是使用多种方法并使用return。
这是我的代码到目前为止,如果它对任何人都有意义...任何帮助赞赏。
import java.util.Scanner;
public class LPU {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
boolean gradedep;
do {
System.out.println("Please input your mark: ");
int mark = in.nextInt();
System.out.println("Please input number of days to display: ");
int days = in.nextInt();
if (mark >= 0 && mark <= 100 && days >= 0 && days <= 20) {
gradedep = true;
} else {
System.out.println("");
System.out.println("");
System.out.println("Please re-enter as you have entered an invalid input. ");
System.out.println("");
System.out.println("");
gradedep = false;
}
} while (!gradedep);
}
public static int mingrade(int mark, int days) {
int newmark;
if (mark < 40 && mark >=0) {
newmark = mark;
} else {
newmark = mark - 5;
return newmark;
}
}
}
LPU.java:40:错误:缺少return语句 } ^ 1错误
我知道这个错误与代码中的一些废话无关,但我不确定如何纠正它。
答案 0 :(得分:3)
将return语句移到else子句之外,如下所示:
public static int mingrade(int mark, int days) {
int newmark;
if (mark < 40 && mark >=0) {
newmark = mark;
} else {
newmark = mark - 5;
}
return newmark;
}
你在帖子中的方式,如果标记小于40且大于或等于0,则设置newmark,但永远不会返回。
还没有必要实例化newmark
变量。这将是一个更清洁的方法:
public static int mingrade(int mark, int days) {
if (mark < 40 && mark >=0) {
return mark;
} else {
return mark - 5;
}
}
答案 1 :(得分:2)
试试这个:
// delete newmark
if (mark < 40 && mark >=0) {
return mark;
} else {
return (mark -5);
}