Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/29: Рейтинг темы: голосов - 29, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 17.01.2015
Сообщений: 20

Проверка на ввод только чисел

18.03.2015, 16:30. Показов 6428. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал программу которая принимает два числа а потом оперирует. Но если я ввожу букву то выдаёт ошибку, как сделать так чтобы если вводил не цифры, то заново выводило сообщение на ввод числа , а не выдавало ошибку? Спасибо.

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import java.util.Scanner;
 
public class MyProject4 {
    public static void main(String args[]) {
        float i;
        float k;
        float s;
        String str = null;
        while (true) {
            Scanner scn = new Scanner(System.in);
            System.out.println("Введите первое число");
            i = scn.nextFloat();
            System.out.println("Введите второе число");
            k = scn.nextFloat();
            System.out
                    .println("Введите: (+ сложить) (- вычесть) (* умножить) (/ делить)");
            str = scn.next();
            
            if (str.equals("+")) {
                s = i + k;
                if (s - (int) s == 0)
                    System.out.println((int) s);
                else
                    System.out.println(s);
            }
 
            if (str.equals("-")) {
                s = i - k;
                if (s - (int) s == 0)
                    System.out.println((int) s);
                else
                    System.out.println(s);
            }
 
            if (str.equals("*")) {
                s = i * k;
                if (s - (int) s == 0)
                    System.out.println((int) s);
                else
                    System.out.println(s);
            }
 
            if (str.equals("/")) {
                s = i / k;
                if (s - (int) s == 0) {
                    System.out.println((int) s);
                } else {
                    System.out.println(s);
                }
            }
 
            System.out.println("Введите q для выхода или любую другую для продолжение");
            str = scn.next();
            if (str.equals("q")) {
                System.out.println("Выход");
                return;
            }
 
        }
 
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.03.2015, 16:30
Ответы с готовыми решениями:

Проверка на ввод только чисел
Народ как сделать проверку что бы вводились только числа? Добавлено через 6 минут Можно ли сделать в виде какого либо перечисления...

Проверка на ввод только чисел
Привет! У меня есть код: #include "stdio.h" int main() {

Проверка на ввод только целых и вещественных чисел
как сделать проверку на ввод только целых и вещественных чисел? и чтоб прога бы не вылетала, а просто б просила заново ввести значения) ...

4
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
18.03.2015, 16:35
Обработка ошибки
0
0 / 0 / 0
Регистрация: 17.01.2015
Сообщений: 20
18.03.2015, 16:42  [ТС]
Паблито я читал, но так как я новичок в этом, хотел чтобы мне объяснили на моем примере. Спасибо,
0
55 / 55 / 39
Регистрация: 19.03.2015
Сообщений: 167
19.03.2015, 09:51
вам нужно читать числа в виде строк. потом преобразовывать в число. если преобразование не удачно то ловить исключение.
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,766
19.03.2015, 16:11
Оформите чтение числа в виде метода (чтобы не дублировать для каждого числа).
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
    private static float readFloat(Scanner scanner, String message) {
        float result;
        while (true) {
            System.out.print(message);
            try {
                result = Float.parseFloat(scanner.nextLine());
                break;
            } catch (NumberFormatException e) {
                System.out.println("Не удалось преобразовать введённую строку в число.");
            }
        }
        return result;
    }
И вызывайте там, где необходимо получить число от пользователя.
Java
1
2
            i = readFloat(scn, "Введите первое число: ");
            k = readFloat(scn, "Введите второею число: ");
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.03.2015, 16:11
Помогаю со студенческими работами здесь

Проверка на ввод только числа
Необходимо ввести с клавиатуры число double. Есть проверка на ввод double enterImaginary; for (;;) { std::cout <<...

Проверка на ввод только одного символа
Код #include <iostream> #include <windows.h> using namespace std; int main() { SetConsoleCP(1251); ...

Проверка на ввод только нескольких букв
Проверка на ввод только цифр или букв, понятна, а вот собственно нужно ввести только три буквы по очереди типа R, Y, W в противном случае...

Проверка на ввод только символов (строковый класс)
Здравствуйте, проблема заключается в том, что не знаю как сделать проверку на ввод только символов в строковом классе. string color; ...

Ввод двух целых чисел и проверка этих чисел условиями
.486 ; create 32 bit code .model flat, stdcall ; 32 bit memory model ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru