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

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

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

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

Ответ
 
Опции темы
Старый 08.07.2019, 20: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 в 08:21.
Dmitry(m) вне форума Ответить с цитированием
Старый 08.07.2019, 22:27   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,666
По умолчанию

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

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

Цитата:
Сообщение от 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, 13:02   #5
Dmitry(m)
 
Регистрация: 08.07.2019
Сообщений: 7
По умолчанию

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

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

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

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS