Ввод Java перестает работать, когда выполняется Do / While - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь создать рабочий цикл, в котором пользователь может вводить устрицы, входящие / выходящие из устричной планки, пока емкость не будет достигнута на уровне 500.

Когда емкость достигает 500, я бы хотел, чтобы пользователь все еще былвозможность ввода отрицательных чисел (потому что клиенты все еще могут уйти), но не вводить никаких положительных чисел.К сожалению, я просто не могу ввести что-либо, как только это условие будет выполнено.

    Scanner input = new Scanner(System.in);
        int maxCapacity = 500;
        int oystersIn = 0;
        int oystersOut;
        int currentCapacity = 0;
    System.out.println("Welcome to the Half Shell Dive Bar, Capacity is 500, and there are currently "+ currentCapacity + " oysters in the bar" );
    currentCapacity = 0;
    do {
        oystersIn=0;
        System.out.println("How many oysters are coming in?");
        oystersIn = input.nextInt();        
        currentCapacity += oystersIn;
        System.out.println("Now there are " + currentCapacity + " oysters in the bar");
    }
    while (oystersIn + currentCapacity <= 500);

    }

}

любой ввод будет принят с благодарностью, спасибо!

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Я бы предложил вам: -
1) запустить еще один цикл do while, который принимает отрицательный вход.2) Поместите оба цикла в бесконечный цикл, если вы хотите перезапустить программу, если устриц больше нет в наличии, и используйте "break;"выйти из бесконечного цикла. надеюсь, это поможет

0 голосов
/ 27 сентября 2018

Предполагая, что вы хотите зацикливаться вечно, вам нужно проверить недостаточную и избыточную емкость

do {
    oystersIn=0;
    System.out.println("How many oysters are coming in?");
    oystersIn = input.nextInt(); 
    if (oystersIn + currentCapacity >= 500) {
        System.out.println("Sorry full - waiting for some one to leave");
        continue;
    }
    if (oystersIn + currentCapacity < 0) {
        System.out.println("Can't go negative");
        continue;
    }
    currentCapacity += oystersIn;
    System.out.println("Now there are " + currentCapacity + " oysters in the bar");
}
while (true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...