Диапазон числа от 0 до 100 от пользователя

Я новичок в программировании, и одним из моих заданий является создание кода для числа в диапазоне от 0 до 100; если число отрицательное, я должен преобразовать отрицательное в положительное. Я пробовал много способов решить эту проблему, но не смог. Если кто-нибудь может объяснить, как решить эту проблему, это было бы здорово.

    System.out.print("Enter a number between 0 to 100: ");
    Scanner input = new Scanner(System.in);
    int range = input.nextInt();
    
    // Display the user result 
    if (user1 > range) 
        System.out.println("A correct number was entered "); 
    else if (user1 > range) 
        System.out.println("An incorrect number was entered"); 
    else 
    {
    System.out.print("The number range " + range + " needs to be positive "); 
    System.out.print(range * -1); // If the number is negative convert to positive
    }
        
}

Совет: используйте абсолютное значение вместо хитрых времен -1.

TheHappyBee 17.02.2023 00:31

Вам нужно научиться Отладке резиновых уток. Подсказка: какая очевидная ошибка в этом: if (user1 > range) System.out.println("A correct number was entered "); else if (user1 > range) ... ?

Stephen C 17.02.2023 00:53
Math.abs
Basil Bourque 17.02.2023 00:57

На самом деле, i * -1 НЕ обязательно переворачивает знак i. Попробуйте с Integer.MIN_VALUE.

Stephen C 17.02.2023 00:58
Как сделать движок для футбольного матча? (простой вариант)
Как сделать движок для футбольного матча? (простой вариант)
Футбол. Для многих людей, живущих на земле, эта игра - больше, чем просто спорт. И эти люди всегда мечтают стать футболистом или менеджером. Но, к...
Знайте свои исключения!
Знайте свои исключения!
В Java исключение - это событие, возникающее во время выполнения программы, которое нарушает нормальный ход выполнения инструкций программы. Когда...
Лучшая компания по разработке спортивных приложений
Лучшая компания по разработке спортивных приложений
Ищете лучшую компанию по разработке спортивных приложений? Этот список, несомненно, облегчит вашу работу!
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Blibli Automation Journey - Как захватить сетевой трафик с помощью утилиты HAR в Selenium 4
Если вы являетесь веб-разработчиком или тестировщиком, вы можете быть знакомы с Selenium, популярным инструментом для автоматизации работы...
Фото ️🔁 Radek Jedynak 🔃 on ️🔁 Unsplash 🔃
Фото ️🔁 Radek Jedynak 🔃 on ️🔁 Unsplash 🔃
Что такое Java 8 Streams API? Java 8 Stream API
Деревья поиска (Алгоритм4 Заметки к учебнику)
Деревья поиска (Алгоритм4 Заметки к учебнику)
(1) Двоичные деревья поиска: среднее lgN, наихудшее N для вставки и поиска.
2
4
57
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Если оно отрицательное, просто отмените значение

if (range < 0) {
  range = -range;
}
Ответ принят как подходящий

Вот чего вам не хватает:

Ваше неточное наименование переменной "диапазон", скорее всего, сбивает вас с толку

Я думаю, вы имели в виду, что user1 будет пользовательским вводом, а не переменной «диапазон». Здесь он преподаст вам очень важный урок, который рано или поздно усвоят все программисты: называйте свои переменные так, чтобы вы могли их понять.

Для более описательного имени переменной я переименую user1 в user_input

int user_input = input.nextInt(); 

Который изменяет ваш код на

    if (user_input > range) {
        System.out.println("A correct number was entered "); 
    }
    else if (user_input > range) {
        System.out.println("An incorrect number was entered"); 
    }
    else 
    {
        System.out.print("The number range " + user_input + " needs to be positive "); 
        System.out.print(user_input * -1); // If the number is negative convert to positive
    }

Я также добавил скобки для удобства чтения и правильного форматирования.

Исходя из этого, кажется, что под диапазоном здесь вы имели в виду диапазон от 0 до 100, который устанавливает проблема, что дает

    if (user_input > 0) {
        System.out.println("A correct number was entered "); 
    }
    else if (user_input > 100) {
        System.out.println("An incorrect number was entered"); 
    }
    else 
    {
        System.out.print("The number range " + user_input + " needs to be positive "); 
        System.out.print(user_input * -1); // If the number is negative convert to positive
    }

Наконец-то у нас есть работающий, красивый код.

Для последнего штриха я рекомендую использовать абс, чтобы изменить знаки для лучшего понимания. Который изменяет на

        if (user_input > 0) {
            System.out.println("A correct number was entered "); 
        }
        else if (user_input > 100) {
            System.out.println("An incorrect number was entered"); 
        }
        else 
        {
            System.out.print("The number range " + user_input + " needs to be positive "); 
            System.out.print(Math.abs(user_input)); // If the number is negative convert to positive
        }

Теперь мы закончили :)

Я бы переписал это как:

int minInclusive = 0;
int maxInclusive = 100;
Scanner input = new Scanner(System.in);

System.out.print("Enter a number between " + minInclusive + " and " + maxInclusive + " inclusive: ");    
int number = Math.abs(input.nextInt()); // number is now POSITIVE    
if (number >= minInclusive && number <= maxInclusive) {  // COMPOUND BOOLEAN EXPRESSION!
    System.out.println("A correct number was entered "); 
}
else {
    System.out.println("An incorrect number was entered"); 
}

Другие вопросы по теме