С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/55: Рейтинг темы: голосов - 55, средняя оценка - 4.62
2 / 2 / 0
Регистрация: 24.10.2018
Сообщений: 32

Определение попадания числа в интервал чисел

01.11.2018, 15:14. Показов 11464. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Задача принять от пользоателя число с клавиатуры.
После нужно определить попадает ли оно в интервал. Если да, показать сообщением в какой. Если нет, сообщить об этом.
Задачу выполнил. НО, вводя отрицательное число, оно воспринимается как положительное.

Подскажите, как исправить этот недочет?

Вот мой код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package junior.developer;
 
import java.util.Scanner;
 
public class Interval {
 
    private static Scanner in;
 
    public static void main(String[] args) {
 
        byte a = 0, b = 20, d = 21, e = 40, f = 41, g = 60, h = 61, j = 80, k = 81, n = 100, m = -128;
 
        System.out.print("Проверка попадания числа в интервал от 0 до 100" + "\n" + "Введите число: ");
 
        in = new Scanner(System.in);
        byte i = in.nextByte();
 
        if (i >= a && i <= b) {
            System.out.print("Ваше число " + i + " попадает в интервал от " + a + " до " + b + "\n");
        } else if (i <= d && i <= e) {
            System.out.print("Ваше число " + i + " попадает в интервал от " + d + " до " + e + "\n");
        } else if (i <= f && i <= g) {
            System.out.print("Ваше число " + i + " попадает в интервал от " + f + " до " + g + "\n");
        } else if (i <= h && i <= j) {
            System.out.print("Ваше число " + i + " попадает в интервал от " + h + " до " + j + "\n");
        } else if (i >= k && i <= n) {
            System.out.print("Ваше число " + i + " попадает в интервал от " + k + " до " + n + "\n");
        } else if (i >= k && i >= n) {
            System.out.print("Ваше число " + i + " не попадает ни в один интервал");
        } else if (i <= m) {
            System.out.print("Ваше число " + i + " является отрицательным");
        }
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.11.2018, 15:14
Ответы с готовыми решениями:

Функция попадания числа в интервал
Здравствуйте, мне нужно написать функцию, которая будет возвращать номер интервала, в который попало число из массива. Собственно код я...

Вероятность попадания в интервал двух наугад взятых чисел
Задача: Какова вероятность того, что сумма 2-х наугад взятых положительных чисел, каждое из которых не превосходит единицы, будет меньше...

Определение количества чисел, попадающих в каждый интервал
Есть код в котором определяется количество чисел попадающих в каждый интервал в зависимости от количества интервалов и длины каждого...

11
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
01.11.2018, 15:46
Цитата Сообщение от muskather Посмотреть сообщение
как исправить этот недочет?
вот так https://www.cyberforum.ru/java/thread2250765.html
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
01.11.2018, 16:03
muskather, почитать какие числа может в себе хранить тип byte.
Java
1
byte i = in.nextByte();
заменить на
Java
1
int i = in.nextInt();
0
2 / 2 / 0
Регистрация: 24.10.2018
Сообщений: 32
01.11.2018, 16:33  [ТС]
Программа простая, зачет отладчик? Идет сравнение чисел да и всего

Тип byte может хранить числа в диапазоне от -128 до +127
Тип int от -2147483648 до +2147483647

Мои переменные от 0 до 100, все в byte вмещается

Здесь нужно со Scanner что-то сделать, в каком направлении копатся не понимаю
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
01.11.2018, 16:36
Цитата Сообщение от muskather Посмотреть сообщение
m = -128
Цитата Сообщение от muskather Посмотреть сообщение
переменные от 0 до 100
Цитата Сообщение от muskather Посмотреть сообщение
} else if (i <= m) {
Зачем тут знак меньше?

Что вводите и что получается не верно?
0
2 / 2 / 0
Регистрация: 24.10.2018
Сообщений: 32
01.11.2018, 16:39  [ТС]
Тут согласен, все Вами выделенное - это попытка спонтанно что-то придумать.
Понятно, что это бред и работать не будет.
Вот и хочу разобраться в вопросе, как сделать так, чтобы Scanner не делал переобразование вводимых данных, он скорее всего это делает.
Не уверен в последнем наисанном.
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
01.11.2018, 16:41
muskather,
Цитата Сообщение от JIeIIIa Посмотреть сообщение
Что вводите и что получается не верно?
Тут же не клуб телепатов.
0
2 / 2 / 0
Регистрация: 24.10.2018
Сообщений: 32
01.11.2018, 16:45  [ТС]
Хотел править предыдущее сообщение, страница перезапустилась, и все.. Интренет плохой. Не суть.

Когда ввожу умышленно отрицательное число, например -1, он считывается как положительно, при этом попадает не в тот интервал

Вот что будет в консоли:

Проверка попадания числа в интервал от 0 до 100
Введите число: -1
Ваше число -1 попадает в интервал от 21 до 40

Если ввсеси просто 1, положительно число, то все работает корректно:

Проверка попадания числа в интервал от 0 до 100
Введите число: 1
Ваше число 1 попадает в интервал от 0 до 20
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
01.11.2018, 16:50
Лучший ответ Сообщение было отмечено muskather как решение

Решение

Все правильно работает!
Цитата Сообщение от muskather Посмотреть сообщение
} else if (i <= d && i <= e) {
Для -1 условие будет такое:
} else if (-1 <= 20 && -1 <= 40) { - и внезапно это ИСТИНА)
Скорей всего должно было быть } else if (d <= i && i <= e) {

Добавлено через 33 секунды
А вообще побольше "магических переменных" и все их в условия - тогда легче ошибки находить будет
1
2 / 2 / 0
Регистрация: 24.10.2018
Сообщений: 32
01.11.2018, 16:59  [ТС]
Возможно не правильно что-то понял, исправил условие, теперь для -1 ответ такой:

Проверка попадания числа в интервал от 0 до 100
Введите число: -1
Ваше число -1 попадает в интервал от 41 до 60
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
01.11.2018, 17:00
muskather, у Вас во всех условиях аналогичная ошибка. Сложно все исправить? Зачем Вам вообще программирование?
0
2 / 2 / 0
Регистрация: 24.10.2018
Сообщений: 32
01.11.2018, 17:30  [ТС]
Все и исправил, знак зачем то исправил.
Вот что вышло:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package info.sjd.conditional_constructions;
 
import java.util.Scanner;
 
public class Interval {
 
    private static Scanner in;
 
    public static void main(String[] args) {
 
        byte a = 0, b = 20, d = 21, e = 40, f = 41, g = 60, h = 61, j = 80, k = 81, n = 100;
 
        System.out.print("Проверка попадания числа в интервал от 0 до 100" + "\n" + "Введите число: ");
 
        in = new Scanner(System.in);
        byte i = in.nextByte();
 
        if (a <= i && i <= b) {
            System.out.print("Ваше число " + i + " попадает в интервал от " + a + " до " + b + "\n");
        } else if (d <= i && i <= e) {
            System.out.print("Ваше число " + i + " попадает в интервал от " + d + " до " + e + "\n");
        } else if (f <= i && i <= g) {
            System.out.print("Ваше число " + i + " попадает в интервал от " + f + " до " + g + "\n");
        } else if (h <= i && i <= j) {
            System.out.print("Ваше число " + i + " попадает в интервал от " + h + " до " + j + "\n");
        } else if (k <= i && i <= n) {
            System.out.print("Ваше число " + i + " попадает в интервал от " + k + " до " + n + "\n");
        } else if (n <= i) {
            System.out.print("Ваше число " + i + " не попадает ни в один интервал");
        } else if (a <= -i && -i <= n) {
            System.out.print("Ваше число " + i + " является отрицательным");
        }
    }
}
Введя -1 получим сообщение:

Проверка попадания числа в интервал от 0 до 100
Введите число: -1
Ваше число -1 является отрицательным

Если ввсети -0, что не может быть, получим:

Проверка попадания числа в интервал от 0 до 100
Введите число: -0
Ваше число -0 попадает в интервал от 0 до 20

Спасибо за помощь.

Программирование нужно как професия.
Все схватывают информацию по разному, кто-то на лету, кто-то через пару минут..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2018, 17:30
Помогаю со студенческими работами здесь

Вероятность попадания в интервал
Пусть X – нормально распределенная случайная величина с параметрами α = 1, δ =2. Найти вероятность...

Вероятность попадания в интервал
Здравствуйте! Нужна помощь по случайным величинам Имеем: 1) Показательное распределение 2) Нормальное распределение 3)...

Вероятность попадания в интервал
Пусть дискретная величина задана таблицей распределения: X 1 4 8 p 0.3 0.1 0.6 Построим функцию распределения: F(x) = 0 ...

Вероятность попадания в интервал
n=1000 p=0.01 какова вероятность попадания в интервал По теореме Лапласа никак, По Пуассону нашел P(40) и P(30), их разница равна...

вероятность попадания на интервал
случайная величина Х имеет нормальное распределение с параметрами а=0 и σ^2=1.какова вероятность того ,что величина Х попадет в интервал ....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru