Добавление проверки Int в проверку цикла Do while - PullRequest
0 голосов
/ 21 сентября 2018
import java.util.Scanner;
import java.util.*; 

public class ICT2100_LabTutorial2 {
    public static void main(String args[]){

        Scanner input = new Scanner(System.in);

        System.out.println("Enter your title: ");

        String title = input.nextLine();

        int page;
        int counter = 1;

        String value;

        do{
            System.out.println("Chapter " + counter++);
            value = input.nextLine();
            if(value.length() > 44)
            {
                System.out.println("More than 44 characters");
            }

            System.out.println("Enter a page number: ");
            page = input.nextInt();

            while((page < 1) && (page > 1500)){
                System.out.println("Enter a page number that is between 1 to 1500: ");
                page = input.nextInt();
            }

        }while(!value.equals("END"));

        System.out.println("you ended the process");
    }
}

Я пытаюсь добавить номер страницы в мой код, тогда как код скажет пользователю ввести номер страницы еще раз, если это не число, которое либо от 1 до 1500.

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

Редактировать: очевидно, вам придетсядобавьте input.nextLine(); после input.nextInt();, чтобы программа на самом деле пошла дальше и извлекала следующую инструкцию вместо того, чтобы застрять в цикле.Поправь меня, если я ошибаюсь, все еще учусь и спасибо за помощь.

Ответы [ 3 ]

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

Вы используете AND operator, который возвращает true, когда оба условия выполняются.Но в вашем случае он должен возвращать true, когда любое из условий внутри while loop имеет значение true, что и делает OR operator.

Так что используйте OR operator (||) внутри цикла while

while((page < 1) || (page > 1500)){
}
0 голосов
/ 21 сентября 2018

Использование

while((page < 1) || (page > 1500)) {
...
}
0 голосов
/ 21 сентября 2018

Попробуйте использовать условие Or вместо и

while(page < 1 || page > 1500)

Оба условия не могут быть истинными одновременно, поэтому удалите && с ||как показано выше.

...