Как правильно вложить это утверждение If - PullRequest
0 голосов
/ 18 февраля 2020

Я фиксирую вводимые пользователем данные, но ограничив их от 1 до 100. У меня есть некоторые трудности с вложением этого оператора if правильно. Цель: пользователь может ввести любую сумму от 1 до 100, если нет, она автоматически устанавливается на 0. Я печатаю результаты в конце

    // if statement to restrict use to 1-100
    hatNumber = in.readInt("How many beaver hats would you like?: \n");
    if (hatNumber <= 0 && hatNumber > 100) {
        System.out.println("Hats = " + hatNumber);
    } else {
        hatNumber = 0;
    }
    photoNumber = in.readInt("How many photographs would you like?: \n");
    if (photoNumber <= 0 && photoNumber > 100) {
        System.out.println("Photographs = " + photoNumber);
    } else {
        photoNumber = 0;

        jarNumber = in.readInt("How many Jars of maple syrup?: \n");



    if (jarNumber <= 0 && jarNumber > 100) {
            System.out.println("Jars = " + jarNumber);

        } else {
            jarNumber = 0;
            {

                System.out.println("Hats = " + hatNumber);
                System.out.println("Photographs = " + photoNumber);
                System.out.println("Jars = " + jarNumber);

Ответы [ 3 ]

1 голос
/ 18 февраля 2020

Прежде всего, если вы ожидаете логарифм c «Пользователь может ввести любую сумму от 1 до 100, если нет, она автоматически устанавливается на 0». Вы должны изменить, если еще проверить на

if (hatNumber > 0 && hatNumber <= 100) {
        System.out.println("Hats = " + hatNumber);
} else {
        hatNumber = 0;
}

Окончательный код будет выглядеть так.

    hatNumber = in.readInt("How many beaver hats would you like?: \n");
    if (hatNumber > 0 && hatNumber <= 100) {
        System.out.println("Hats = " + hatNumber);
    } else {
        hatNumber = 0;
    }
    photoNumber = in.readInt("How many photographs would you like?: \n");
    if (photoNumber > 0 && photoNumber <= 100) {
        System.out.println("Photographs = " + photoNumber);
    } else {
        photoNumber = 0;
        jarNumber = in.readInt("How many Jars of maple syrup?: \n");
        if (jarNumber > 0 && jarNumber <= 100) {
            System.out.println("Jars = " + jarNumber);
        } else {
            jarNumber = 0;
        }
    }
    System.out.println("Hats = " + hatNumber);
    System.out.println("Photographs = " + photoNumber);
    System.out.println("Jars = " + jarNumber);
0 голосов
/ 18 февраля 2020

вам не хватает закрывающей скобки на линии после

photoNumber = 0;
0 голосов
/ 18 февраля 2020
 if (hatNumber <= 0 && hatNumber > 100) 

Это условие никогда не может быть верным в любом случае. Вы должны использовать следующее условие

 if (hatNumber > 0 && hatNumber < 100) {
    System.out.println("Hats = " + hatNumber);
 }
...