Java中的方法类型

问题描述 投票:0回答:2

我是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");             
       }

    }
}

java methods types switch-statement
2个回答
0
投票

在方法“ primoGiorno”中,如果遇到switch语句的默认情况,则不返回任何内容,但会打印。提供默认情况下带有int值的return语句。


0
投票

此行将其断开:

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;             
       }

    }
© www.soinside.com 2019 - 2024. All rights reserved.