Задать вопрос
@heatherr

Как в Java отнять от числа, чтобы результат сохранился и от этого результата отнять следующее число?

Есть бак с водой, например 1000 мл, и есть 2 чашки: первая 100 мл, вторая 200 мл. Из бака в разной последовательности вычерпывают воду этими чашками (вразнобой, без како-либо системы: первой, второй, второй, первой, и т д), когда бак будет пустой - пользователь видит сообщение, что вода кончилась. "Вычерпывание" воды я сделала через сканер и if/else (если пользователь воодит в консоль 1, то первая кружка, если 2, то вторая). А как сделать так, чтобы одно общее значение (бак 1000 мл) после вычерпывания 100 мл, возвращал новое значение и следующая кружка отнималась бы уже от нового значения? Цикл for выводит сразу все значения и не совсем подходит потому что кружек две, return останавливает выполнение программы. Может, есть просто какие-то решения, но я о них просто не знаю?
  • Вопрос задан
  • 550 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
А как сделать так, чтобы одно общее значение (бак 1000 мл) после вычерпывания 100 мл, возвращал новое значение и следующая кружка отнималась бы уже от нового значения?

Так вы переменной, которая содержит информацию о баке, внутри цикла после вычерпывания (вычитания) присваивайте новое значение и все

Примерно как-то так:
public class Main {

    public static void main(String[] args) {

        int volume = 1000;

        Scanner scanner = new Scanner(System.in);
        System.out.println(
                "Объем бака равен - 1000 мл. \n" +
                        "Введите значение 100 мл. или 200 мл."
        );
        while (volume >= 0) {
            int input = scanner.nextInt();

            if(input > volume) {
                System.out.println("В баке нет такого объема воды!");
                continue;
            } else if(input == 100) {
                volume -= input;
                System.out.println("Остаток в баке: " + volume);
            } else if (input == 200) {
                volume -= input;
                System.out.println("Остаток в баке: " + volume);
            } else {
                System.out.println("Вы ввели недействительное значение!");
            }

            if(volume == 0) {
                System.out.println("Вода в баке закончилась");
                break;
            }

        }

    }

}


В первой ветке if проверяем есть ли такой объем воды в баке
Во второй и в третьей ветках мы соответственно, вычитаем нужный объем из общего объема бака
В четвертой ветке мы выводим сообщение, если введено значение отличное от 100 или 200.
Ну и в самом конце если объем меньше 0, то выходим из цикла.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы