public class Solution {
public static int convertToSeconds(int hour){
int a = hour *3600;
return a;
}
public static void main(String[] args) {
System.out.println(convertToSeconds(10));
System.out.println(convertToSeconds(14));
Почему мы не могли сделать так?
int a = 5;
int hour = 5*3600;
return hour?Edvard
4 уровень
Объясните все по шагам, пожалуйста
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Артём
19 января 2018, 18:34
Дело в том, что на данном этапе необходимо использование методов и классов.
Готовят к тому, чтобы твое решение могло подходить для разных значений, для подготовки шаблонов.
0
Dudchenko Andrei
18 января 2018, 23:06решение
Давай по порядку.
1. Мы запускаем вывод на экран
System.out.println(convertToSeconds(10));
В скобках указан метод, который используется - convertToSeconds. У него есть аргумент - 10.
2. В другом месте у нас этот метод уже объявлен:
public static int convertToSeconds(int hour){
В скобках у него указано какой аргумент для своей работы он ожидает получить. В данном случае это переменная hour типа int. То есть, в нашем первом вызове метода этой локальной (действует только во время работы метода) переменной будет присвоено значение 10.
Ну, а дальше проходим по командам метода:
int a = hour *3600; - переменной а будет присвоено значение 36000.
return a; - метод возвращает результат своей работы как значение переменной а для вывода на экран.
3. Что будет если без изменений метода сделать так, как предлагаешь ты.
int a = 5; - ок, присваиваем значение переменной а как 5.
int hour = 5*3600; - тут уже будут проблемы. В методе уже объявлена переменная hour и ее значение уже установлено как 10. Тут мы пытаемся создать такую же переменную с другим значением. Если прибить тип (int), тодолжно пропустть.
return hour? - вернет 18000.
Ну, так можно делать, только как ты сделаешь возврат, скажем, секунд для 3-х часов?
С помощью метода достаточно написать convertToSeconds(3) без какой-либо необходимости что-то менять.
А так, вообще, можно было бы обойтись return 5*3600 без всяких промежуточных шагов :)
+5
Aliaksandr Vianioutsau
19 января 2018, 19:47
Почему мы не могли сделать так?
int a = 5;
int hour = 5*3600;
return hour?
Может быть:
int hour = hour*3600;
return hour;
Так было бы логичнее, и нет лишней переменной а, которая у Эдварда вводится, но не используется.
0
Dudchenko Andrei
19 января 2018, 20:28
Может быть:
Вопрос в том - для чего и как это планируется использовать?
Если просто в теле программы, чтобы перевести часы в секунды без метода, тогда return не нужен вообще - оно не работает вне метода, и в первой строке будет ошибка, так как изначального значения hour нигде нет и что умножать на 3600 - непонятно.
Если заменить этими строками то, что написано в исходном методе, то будет работать, если убрать int перед hour, так как эта переменная уже объявлена в аргументах метода.
А можно и еще короче - оставить только return hour*3600. Или вообще считать все в теле программы, ибо данная операция несложная.
+1
Edvard
19 января 2018, 21:32
Cпасибо большое :)
0
Aliaksandr Vianioutsau
21 января 2018, 09:32
самое прикольное, что сам сделал таким образом:
return hour*3600;
стал читать вопрос человека и отвечать, не глянув на весь код задачи и не вспомнив условие)
0