Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/64: Рейтинг темы: голосов - 64, средняя оценка - 4.69
52 / 18 / 11
Регистрация: 27.03.2013
Сообщений: 789

Проверка на пустое значение при вводе значений

23.10.2017, 16:23. Показов 12750. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хотел поставить цикл do - while для проверки на пустое значение переменной при использовании метода Scanner, когда пользователь не хочет вводить данные, а нажимает Enter.

Java
1
do{...}while(n!= null)
Получаю ошибку

Но что можно поставить в условии, чтобы например если пользователь нажимает Enter, то в while проверяется значение на пустую переменную , и тогда команда заканчивает работу.???
Как это реализовать ?

n == null - так не получается

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
    /* package whatever; // don't place package name! */
     
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    import java.util.Scanner; 
     
    /* Name of the class has to be "Main" only if the class is public. */
    class Prog
    {
        public static void main (String[] args) throws java.lang.Exception
        {
                    
                     Scanner s = new Scanner(System.in);
                     System.out.println("\nВведите целое число : " + " \n" );
                     while(!s.hasNextInt()){
                     System.out.println("\nВведите целое число : " + " \n" ); 
                     s.next();
                     }
                     int n = s.nextInt();
                     //System.out.println("\nВы ввели число " + n + " \n" );
                     int result;
                     result = 0; // переменную нужно инициализировать, иначе будет ошибка
                     if(n == 1) result = n;
                     else if(n >= 11 && n <= 19) result = n;
                     else if((n % 100) >= 11 && (n % 100) <=19 ) result = n%100;
                     else if((n % 10) == 1) result = n%10;
                     else if((n % 10) == 2 || (n % 10) == 3 || (n % 10) == 4 ) result = n%10;
                                                             
                     switch (result){
               case 1 : System.out.println("\n" + n + "  рубль");
                   break;
               case 0  : 
               case 11 :
               case 12 :
               case 13 :
               case 14 :
               case 15 :
               case 16 :
               case 17 :
               case 18 :
               case 19 :
                       System.out.println("\n" + n + " рублей");
                   break;
               case 2 : 
               case 3 :
               case 4 :
               case 5 :   
                  System.out.println("\n" + n + "  рубля");
                     break; }
                           
                     
                   
        }
     
              
     
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.10.2017, 16:23
Ответы с готовыми решениями:

Проверка массива на схожие элементы при их вводе
Такой бред творится, что взрывается голова! Суть такая, есть код: import java.util.Scanner; public class Pracownik { ...

Проверка на пустое значение
Здравствуйте. Пытаюсь сделать проверку на пустое значение, но не получается: static void AddSounds(XmlDocument doc) { ...

Проверка на пустое значение
Здравствуйте, товарищи! Сразу извиняюсь если построю вопрос не правильно.))) Вообщем как реализовать в ВБА проверку файла на пустое...

8
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
23.10.2017, 16:34
https://www.youtube.com/watch?v=PMq6Zp2qfcE
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
23.10.2017, 16:42
Java
1
2
3
4
5
        Scanner sc = new Scanner(System.in);
        System.out.println("Введите число");
        String str = sc.nextLine();
        if (str.isEmpty()) zavershaemRabotu();
        else rabotaemDalshe();
0
52 / 18 / 11
Регистрация: 27.03.2013
Сообщений: 789
23.10.2017, 22:12  [ТС]
Пробовал реализовать, но цикла не получается, и если использовать для выхода break;, получаю ошибку

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
D:\java\src>javac prog1.java
prog1.java:18: error: break outside switch or loop
                                   break;
                                   ^
1 error


Если использовать System.exit(0); - то приходится вводить число 2 раза, соответственно
цикла нет и программу заново приходится запускать

Кликните здесь для просмотра всего текста
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
63
64
65
66
    /* package whatever; // don't place package name! */
     
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    import java.util.Scanner; 
     
    /* Name of the class has to be "Main" only if the class is public. */
    class prog1
    {
        public static void main (String[] args) throws java.lang.Exception
        {
                     
                     Scanner s = new Scanner(System.in);
         System.out.println("\nВведите целое число : " + " \n" );
        String str = s.nextLine();
        if (str.isEmpty()) {
                           break;
                           }
                 
                     //Scanner s = new Scanner(System.in);
                     //System.out.println("\nВведите целое число : " + " \n" );
                     while(!s.hasNextInt()){
                     System.out.println("\nВведите целое число : " + " \n" ); 
                     s.next();
                     }
                     int n = s.nextInt();
                     //System.out.println("\nВы ввели число " + n + " \n" );
              
                     int result;
                     result = 0; // переменную нужно инициализировать, иначе будет ошибка
                     if(n == 1) result = n;
                     else if(n >= 11 && n <= 19) result = n;
                     else if((n % 100) >= 11 && (n % 100) <=19 ) result = n%100;
                     else if((n % 10) == 1) result = n%10;
                     else if((n % 10) == 2 || (n % 10) == 3 || (n % 10) == 4 ) result = n%10;
                                                             
                     switch (result){
               case 1 : System.out.println("\n" + n + "  рубль");
                   break;
               case 0  : 
               case 11 :
               case 12 :
               case 13 :
               case 14 :
               case 15 :
               case 16 :
               case 17 :
               case 18 :
               case 19 :
                       System.out.println("\n" + n + " рублей");
                   break;
               case 2 : 
               case 3 :
               case 4 :
               case 5 :   
                  System.out.println("\n" + n + "  рубля");
                   break;
                          
                 
                   }
        }
     
              
     
    }
0
52 / 18 / 11
Регистрация: 27.03.2013
Сообщений: 789
07.02.2018, 13:45  [ТС]
Вот решение, которое на такое элегантное, но все же. Пока больше не умею.
Это калькулятор умножения, выход из вычислений по клавише n.

Кликните здесь для просмотра всего текста
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
import java.util.Scanner;
 
public class Calculator {
 
    public static void main(String[] args) {
 
        int a = 0, a2 = 0;
 
        // Запускаем цикл, и можем ползоваться калькулятором, который может умножать
        while (true) {
 
            // Захватываем 1-е число
            Scanner sc = new Scanner(System.in);
            System.out.println("Введите первое число");
            if (sc.hasNextInt()) { // проверяем, что в консоли введено число типа данных int
                a = sc.nextInt(); // данный метод считывает с консоли число типа данных int
                if (a == 0) {
                    break;
                }
            } else {
                System.out.println("Вы ввели не число");
            }
 
            // Захватываем 2-е число
            Scanner sc2 = new Scanner(System.in);
            System.out.println("Введите второе число");
            if (sc2.hasNextInt()) { // проверяем, что в консоли введено число типа данных int
                a2 = sc2.nextInt(); // данный мтеод считывает с консоли интовое значение
                if (a2 == 0) {
                    break;
                }
            } else {
                System.out.println("Вы ввели не число");
            }
 
            System.out.println(a * a2);
            System.out.println("Если хотите закончить вычисления, нажимите n, в противном случае Enter");
            Scanner sc3 = new Scanner(System.in);
            String finish = sc3.nextLine();
            if ( finish.compareTo("n") == 0) {
                System.out.println("Вычисления закончены!");
                break;
            }
        }
    }
}
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
07.02.2018, 18:08
Цитата Сообщение от masli Посмотреть сообщение
Пробовал реализовать, но цикла не получается, и если использовать для выхода break;, получаю ошибку
можете return; использовать

Добавлено через 55 секунд
masli,
Java
1
2
3
4
5
6
7
8
9
case 11 :
               case 12 :
               case 13 :
               case 14 :
               case 15 :
               case 16 :
               case 17 :
               case 18 :
               case 19 :
заменяется на
Java
1
case 11-19
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
07.02.2018, 18:13
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
заменяется на
Цитата Сообщение от Fene4ka_ Посмотреть сообщение
case 11-19
шта?
1
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
07.02.2018, 23:17
Pablito, ладно, ладно, подловили, это в каком-то другом похожем языке так можно)) простите) не пользуюсь свичами)

Добавлено через 4 минуты
тогда, наверное, лучше писать как-то так
Java
1
case 1: case 2: case 3:
чем
Java
1
2
3
case 1:
case 2:
case 3:
0
 Аватар для Aviz__
2745 / 2054 / 507
Регистрация: 17.02.2014
Сообщений: 9,473
09.02.2018, 14:16
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
import java.util.NoSuchElementException;
import java.util.Scanner;
 
public class CyberForum {
 
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.printf("%s%n%s%n",
                "Ведите значения a и b через пробел",
                "Для выхода из программы <Ctrl> z, или <Ctrl> d, или, как у вашей OC");
        while (input.hasNext()) {
            try {
                printMult(input.nextDouble(), input.nextDouble());
            }
            catch (NoSuchElementException exp) {
                System.err.println("Ошибка ввода! Попробуйте еще раз:");
                input.nextLine();
            }
        }
    }
 
    public static void printMult(final double a, final double b) {
        System.out.printf("Произведение a*b = %.2f%n", (a * b));
    }
}
Bash
1
2
3
4
5
6
7
8
Ведите значения a и b через пробел
Для выхода из программы <Ctrl> z, или <Ctrl> d, или, как у вашей OC
s 3
Ошибка ввода! Попробуйте еще раз:
3 d
Ошибка ввода! Попробуйте еще раз:
2,1 2
Произведение a*b = 4,20
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.02.2018, 14:16
Помогаю со студенческими работами здесь

VB Проверка на пустое значение
Доброго дня. Очень часто сталкиваюсь с проблемой, когда хочу прочитать значение в ячейке, которая пустая. И программа «вылетает»....

Проверка на пустое значение поля
Доброго времени суток! Есть поле, значение которого я хочу присвоить Edit. Проблема возникает, если это поле имеет значение null. ...

не работает проверка на пустое значение
Второй вопрос, почему не работает проверка на пустое значение? var num1; var num2; num1 =...

Проверка на пустое значение строки
есть такой файл: а так я его считиваю в поля: дело в том что надо обойти пустую строку. как это сделать? while ((c =...

Проверка на пустое и неверное значение в текстБоксе
Здравствуйте, помогите в логическом заключении построения программы. Покажите пож-ста как правильно комбинировать несколько задач в методе...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru