Я новичок в программировании. Пытаюсь составить программу для проката велосипедов. И проблема в том, что есть два тарифа (1 и 2) на определенное время.
Тариф 1: с 00:00 до 07:00 и с 17:00 до 24:00. (1 $) Тариф 2: с 07:00 до 17:00. (2 $) Мне нужно использовать сканер, поэтому я пишу два числа, и он должен рассчитать мне количество часов в тарифах 1 и 2, а также общую стоимость. Проблема в том, что я понятия не имею, как написать программу, чтобы она определяла, сколько часов в том или ином тарифе.
Программа должна работать следующим образом:
Итак, вот код:
import java.util.Scanner;
public class Bike {
public static void main(String[] args) {
Scanner clavier = new Scanner(System.in);
System.out.print("Give the starting hour : ");
int start = clavier.nextInt();
System.out.print("Give the ending hour : ");
int finish = clavier.nextInt();
if (start < 0 || start > 24) {
System.out.println("Hours must be within 0 and 24 !");
}
if (start == finish) {
System.out.println("Strange, you didn't take it long enough !");
}
if (start >= 24 || start > finish) {
System.out.println("Strange, the starting hour is after the end ...");
}
int total = finish - start;
if (total > 0) {
System.out.println("You have rented the bike for " + total + " hours.");
}
//This is where it becomes complicated.
if ((start >= 0 && start < 7)||(start >= 17 && start <= 23)) {
System.out.println("Amount of hours in Tariff 1 is : " + ((7 - start) +(finish - 17)));
} else {
System.out.println("Amount of hours in Tariff 2 is : "
System.out.print("Total amount to pay is : ");
System.out.println(" dollars.");
{
}
Я его отредактировал, и как раз перед этим закрыли.
Это не совсем то же самое, но все же «я понятия не имею, как написать программу» не является вопросом и здесь не рассматривается по теме, извините. См. Справочную страницу Как мне задать хороший вопрос?
Добро пожаловать в stackoverflow.com. Вам также необходимо проверить финиш, где происходит финиш, будь то граница 1-го тарифа или второго тарифа. Не думайте, что это проблема кодирования, и для этого нужна логика, а не синтаксис. Думаю, если хорошенько подумать, то можно в этом разобраться. поскольку этой программе не потребуется какая-либо библиотека, специфичная для Java, поэтому сосредоточьтесь на логике и используйте также переменную времени окончания.
Проблема в том, что я пробовал. И до сих пор не знаю, как это правильно делать.




Хорошо, вы новичок в программировании, поэтому я постараюсь сделать это проще. Проблема здесь не в синтаксисе или каком-то секрете в java, а просто в отсутствии логики. Из того, что вы написали, я вижу, что вы либо в средней школе, либо только начинаете программировать, либо кто-то только начинает учиться программировать.
Поэтому я постараюсь сделать это простым и не давать вам слишком много подсказок.
Тариф 2 не может быть только в else. Я бы порекомендовал создать 2 целых, тарифOne и тарифTwo (или любые другие имена, которые вам нравятся), сделайте их = 0. Вычислите их, используя некоторые операторы if. Затем, когда у вас есть значения, используйте их в System.out.
Это хорошо, потому что вы можете просто добавить все, что хотите, в целые числа, и у вас всегда будут их значения.
Причина, по которой этот вопрос отклоняется, заключается в том, что у вас есть все инструменты, чтобы ответить на вопрос, и вы просто не понимаете требуемую логику, это обычно не очень хорошая практика, поскольку это кажется ленивым, даже если вы очень старался.
Спасибо за ответ! Я попробую это.
Похоже, вы спросили почти этот точный вопрос перед, где он был сильно отклонен и закрыт. Почему вы ожидаете, что на этот раз он будет встречен более благосклонно?