Java

Сравнение двух переменных на java

Доброго времени суток! Подскажите, пожалуйста что я делаю не так. есть код:

import java.util.Scanner;

class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int totalTime = 0;
int biggestTime = 0;
int smallestTime = 0;
while (true) {
System.out.println("Введите название задачи");
String name = scanner.nextLine();
System.out.println("Сколько дней потребуется на выполнение?");
int days = scanner.nextInt();
System.out.println("Сколько часов?");
int hours = scanner.nextInt();
System.out.println("Сколько минут?");
int minutes = scanner.nextInt();
int currentTimeTask = convertToSeconds(days, hours, minutes);
totalTime = totalTime + currentTimeTask;
biggestTime = (currentTimeTask > biggestTime) ? currentTimeTask : biggestTime;
smallestTime = currentTimeTask;
smallestTime = (currentTimeTask < smallestTime) ? currentTimeTask : smallestTime;
System.out.println("Для завершения работы программы введите `end` для продолжения нажмите enter");
scanner.nextLine();
String input = scanner.nextLine();
if ("end".equals(input)) {
break;
}
}
System.out.println("Всего потребуется: " + totalTime + " секунд");
System.out.println("Самая продолжительная задача займет: " + biggestTime + " секунд");
System.out.println("Самая короткая задача займет: " + smallestTime + " секунд");
}
public static int convertToSeconds(int days, int hours, int minutes) {
int seconds;
seconds = (days * 86400) + (hours * 3600) + (minutes * 60);
return seconds;
}
}

При проверке результатов получаю одинаковые значения для самой продолжительной и самой короткой задач. И как-то не могу понять почему такой вывод. При данных входных данных ожидаю результат для короткой задачи: 93780 сек. Заранее спасибо!
Сергей Шефер
Сергей Шефер
1 058
Вы зря на ранних версиях Си эту задачу написали. Писали бы на Java, вероятность ошибки стала бы меньше.
import java.util.Scanner;

class DurJob {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int totalTime = 0;
int biggestTime = 0;
int smallestTime = Integer.MAX_VALUE;// -- тута ещё одна ошибочка
while (true) {
System.out.println("Введите название задачи");
String name = scanner.nextLine();
System.out.println("Сколько дней потребуется на выполнение?");
int days = scanner.nextInt();
System.out.println("Сколько часов?");
int hours = scanner.nextInt();
System.out.println("Сколько минут?");
int minutes = scanner.nextInt();
int currentTimeTask = convertToSeconds(days, hours, minutes);
totalTime = totalTime + currentTimeTask;
biggestTime = Math.max(currentTimeTask, biggestTime);
//smallestTime = currentTimeTask; -- тута ошибочка
smallestTime = Math.min(currentTimeTask,smallestTime);
System.out.println("Для завершения работы программы введите `end` для продолжения нажмите enter");
scanner.nextLine();
String input = scanner.nextLine();
if ("end".equals(input)) {
break;
}
}
System.out.println("Всего потребуется: " + totalTime + " секунд");
System.out.println("Самая продолжительная задача займет: " + biggestTime + " секунд");
System.out.println("Самая короткая задача займет: " + smallestTime + " секунд");
}
public static int convertToSeconds(int days, int hours, int minutes) {
int seconds = (days * 86400) + (hours * 3600) + (minutes * 60);
System.out.println("--"+seconds);
return seconds;
}
}
Борис Никифоров
Борис Никифоров
62 656
Лучший ответ
Сергей Шефер спасибо большое! заработало
ошибка в логике строка: 21; текст: smallestTime = currentTimeTask;
решение:
int totalTime = 0;
int biggestTime = Integer.MIN_VALUE;
int smallestTime = Integer.MAX_VALUE;
строку 21 убрать
МК
Макс К.
5 038