Я пытаюсь написать код, который, учитывая время суток в терминах часа, минуты, секунды и «половины дня» (т. Е. AM или PM), вычисляет и возвращает часть дня (значение типа double), которое прошло с полуночи (12:00 AM).Отсутствует заявление о возврате
Например,
System.out.print(fractionOfDay(12, 0, 0, 'A'));
напечатает 0,0
System.out.print(fractionOfDay(12, 0, 0, 'P'));
напечатает 0,5
System.out.print(fractionOfDay(11, 59, 59, 'P'));
напечатает 0,999988426
я написал следующий код:
public class FractionOfDay {
public static double fractionOfDay(double h, double m, int s, char a) {
if (a == 'P' && h == 12) {
double x = (h * 60 * 60) + (m * 60) + (s);
double y = x/86400;
return y;
} else if (a == 'P' && h != 12) {
double x = ((h + 12) * 60 * 60) + (m * 60) + (s);
double y = x/86400;
return y;
} else if (a == 'A' && h == 12) {
double x = (m * 60) + (s);
double y = x/86400;
} else if (a == 'A' && h != 12) {
double x = ((h) * 60 * 60) + (m * 60) + (s);
double y = x/86400;
return y;
}
}
public static void main(String[] args) {
System.out.println(fractionOfDay(12, 0, 0, 'P'));
}
}
Однако, когда я пытаюсь скомпилировать этот код, он дает мне ошибку
отсутствующий оператор возврата.
Я не понимаю, что не так с кодом.
Что будет 'fractionOfDay (1.0, 1.0, 1, 'Q')' return? – immibis
@immibis, что вы имеете в виду Q? есть только AM и PM? –
вы это знаете, но компьютер этого не делает. И что должно произойти, если вы все равно решите написать? – immibis