Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Java > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 08.07.2019, 21:59   #1
Dmitry(m)
 
Регистрация: 08.07.2019
Сообщений: 7
По умолчанию Попросите пользователя ввести положительное целое число через JOptionPane

Я новичек в java и вообще в программировании , пытаюсь решить задачку " Попросите пользователя ввести положительное целое число через JOptionPane.

Обработайте некорректные данные (ничего не ввёл, отрицательное число, 0, не целое число), выведя соответствующие уведомления об ошибке.

Вычислите сумму всех чисел от 1 до числа, введённого пользователем, используя цикл for.

Выведите результат пользователю через JOptionPane. "

Это мое решение , без цикла работает все замечательно , как приступаю к той части где надо использовать цикл код работает не так как надо. Предупреждения выдает но цикл все равно срабатывает
Код:
public static void main(String[] args) {
        
            String df ;
            int sum = 0 ;
         
        df = JOptionPane.showInputDialog(null,"введите положительное целое  число ",JOptionPane.QUESTION_MESSAGE);
            if(df != null && !df.equals("")) {
            double a =  Double.parseDouble(df) ;
         
            if(a < 0) JOptionPane.showInputDialog(null,"вы ввели отрицательное число",JOptionPane.QUESTION_MESSAGE);
            if(a == 0) JOptionPane.showInputDialog(null,"вы ввели ноль",JOptionPane.QUESTION_MESSAGE);
            if((int)a != a) JOptionPane.showInputDialog(null,"вы ввели не целое число число " ,JOptionPane.QUESTION_MESSAGE);
                    for(int i = 0; i <= a; i++) {
                          sum += i;
            } JOptionPane.showInputDialog(null,"сумма чисел от  1 до  " + df + "  = " + sum,JOptionPane.QUESTION_MESSAGE); 
                         } else  JOptionPane.showInputDialog(null,"вы не ввели число",JOptionPane.QUESTION_MESSAGE);
            
              }  
    
       }

Последний раз редактировалось Аватар; 09.07.2019 в 09:21.
Dmitry(m) вне форума   Ответить с цитированием
Старый 08.07.2019, 23:27   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,651
По умолчанию

Выделите пожалуйста код в тэги. Если бы я решал задачу, я бы попытался вынести логику по выполнению задачи в отдельный класс (со свойствами и методами). А затем уже подключал UI.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума   Ответить с цитированием
Старый 10.07.2019, 10:11   #3
Dmitry(m)
 
Регистрация: 08.07.2019
Сообщений: 7
По умолчанию

это понятно , но задача должна быть решена примитивным способом.
Dmitry(m) вне форума   Ответить с цитированием
Старый 10.07.2019, 10:21   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,263
По умолчанию

Цитата:
Сообщение от Dmitry(m) Посмотреть сообщение
но задача должна быть решена примитивным способом.
так используйте else https://www.w3schools.com/java/java_conditions.asp

примерно так:
Код:
  if(a < 0) { JOptionPane.showInputDialog(null,"вы ввели отрицательное число",JOptionPane.QUESTION_MESSAGE); }
  else {
      if(a == 0) { JOptionPane.showInputDialog(null,"вы ввели ноль",JOptionPane.QUESTION_MESSAGE); }
      else{ 
         if((int)a != a) { JOptionPane.showInputDialog(null,"вы ввели не целое число число " ,JOptionPane.QUESTION_MESSAGE); }
         else {
               sum=0;	
               for(int i = 1; i <= a; i++) {
                          sum += i;
               } 
               JOptionPane.showInputDialog(null,"сумма чисел от  1 до  " + df + "  = " + sum,JOptionPane.QUESTION_MESSAGE); 
              }  
      }
  }
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 30.07.2019, 14:02   #5
Dmitry(m)
 
Регистрация: 08.07.2019
Сообщений: 7
По умолчанию

уже сам додумался , но все равно спасибо
Dmitry(m) вне форума   Ответить с цитированием
Старый 30.07.2019, 18:31   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,263
По умолчанию

Цитата:
Сообщение от Dmitry(m) Посмотреть сообщение
уже сам додумался , но все равно спасибо
20 дней понадобилось, чтобы прочитать мой пост или чтобы проверить код?
или Вы мой пост вообще только сегодня увидели?
Serge_Bliznykov вне форума   Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пользователь вводит целое положительное число n. kolin2 Общие вопросы C/C++ 2 11.10.2015 18:50
Дано целое положительное число n Найти его простые делители ProgrammiST-_- Паскаль, Turbo Pascal, PascalABC.NET 2 02.01.2015 13:28
Ввести число. Если оно положительное, найти его квадратный корень. Если отрицательное - возвести в квадратВвести число. Если оно п FYNZIK Паскаль, Turbo Pascal, PascalABC.NET 1 18.02.2014 16:29
Дан вещественный вектор X (x1, x2, …, xN), где N – целое положительное число... testtest01 Паскаль, Turbo Pascal, PascalABC.NET 0 08.06.2012 19:43
Перевести целое положительное десятичное число в шестнадцатеричное счисление Alfis Паскаль, Turbo Pascal, PascalABC.NET 3 28.12.2008 21:40