我是Java的新手,我正在尝试这个ex,但它给我的方法类型“ primoGiorno”带来了一些问题:我认为应该是正确的(“ primoGiorno”采用int并返回int),但它给了我错误:“此方法必须返回类型为int的结果”;我不明白为什么:它通过切换为整数值的“ x”:0、1、2等返回。我在哪里做错了?
import java.util.Scanner;
public class CheGiorno {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println ("Selezionare numero da 0 (Lunedì) a 6 (Domenica");
int inizioAnno = scanner.nextInt();
primoGiorno (inizioAnno);
scanner.close();
}
private static int primoGiorno (int x) {
switch (x) {
case 0 : return 0; break;
case 1 : return 1; break;
case 2 : return 2; break;
case 3 : return 3; break;
case 4 : return 4; break;
case 5 : return 5; break;
case 6 : return 6; break;
default : System.out.println ("Valore errato");
}
}
}
在方法“ primoGiorno”中,如果遇到switch语句的默认情况,则不返回任何内容,但会打印。提供默认情况下带有int值的return语句。
此行将其断开:
default : System.out.println ("Valore errato");
如果达到默认值,它仍然必须返回一个int值,而System.out.println ("Valore errato");
显然不是。
具有在错误情况下返回int的函数的惯例是返回-1。
类似这样的东西:
private static int primoGiorno (int x) {
switch (x) {
case 0 : return 0; break;
case 1 : return 1; break;
case 2 : return 2; break;
case 3 : return 3; break;
case 4 : return 4; break;
case 5 : return 5; break;
case 6 : return 6; break;
default : return -1;
}
}