Тип метода в Java - PullRequest
       59

Тип метода в Java

0 голосов
/ 29 января 2020

Я новичок в Java, и я пытаюсь это ex, но это вызывает у меня некоторые проблемы с типом метода "primoGiorno": я думаю, что это должно быть правильно ("primoGiorno" принимает int и возвращает int), но это дает мне ошибку: "Этот метод должен возвращать результат типа int"; Я не могу понять, почему: он возвращает, переключая «х»: 0, 1, 2, и т. Д. c .., которые являются значениями int. Где я делаю не так?

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

    }
}

Ответы [ 2 ]

3 голосов
/ 29 января 2020

Эта строка разбивает его:

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

    }

Вы также можете удалить операторы break;, поскольку return в любом случае завершает функцию.

0 голосов
/ 29 января 2020

В методе "primoGiorno", регистр по умолчанию для оператора switch, если встречается, ничего не возвращает, но печатает. Предоставьте оператор возврата для случая по умолчанию со значением int.

Удалите операторы break после возврата, это недоступный код.

...