Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 17.03.2018
Сообщений: 108
1

Switch-Case цикл

06.06.2019, 09:35. Показов 3839. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет форумчане! Спасибо, что вы есть. Подскажите пожалуйста, почему возникает ошибка? Не понимает класс с типом стринг. Не понимаю, где ошибка.

1) Попросите пользователя ввести первое число через JOptionPane, а затем аналогично второе.

2) Попросите пользователя ввести одну из операций: «+», «-», «*», «/».

3) Используя switch-case выполните соответствующую операцию между двумя введёнными числами и выведите результат через JOptionPane.

Примечание: При вводе некорректных данных выведите информацию об ошибке в консоль и завершите программу.

Решение:

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package swithcasehomeworkinternet; 
 
import java.util.Random; 
import javax.swing.JOptionPane; 
/** 
* 
*/ 
public class SwithcaseHomeWorkInternet { 
private static int bv; 
 
 
/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args, Object с) { 
// TODO code application logic here 
String a; 
while (true) { // Запускаем цикл и просим сделать ввод числа 
a = JOptionPane.showInputDialog(null, "Введите первое число"); // Диалог ввода 
 
// Далее следуют всевозможные проверки, что пользователь ввел корректное значение 
 
if (a == null || a.equals("")) { //Проверяем пустую строку ввода 
JOptionPane.showMessageDialog(null, "Вы так и ничего не ввели") ; 
continue; } 
 
try {double a1 = Double.parseDouble(a); // Провенряем, что ввели не буквы, пытаясь парсить введенное на первом этапе строчное значение 
} 
catch (NumberFormatException e) { 
JOptionPane.showMessageDialog(null,"Вы ввели не число, код ошибки = " + e); 
continue ; } 
 
 
JOptionPane.showMessageDialog(null, "Спасибо, вы ввели первое число " ) ; 
break; 
} 
double a1 = Double.parseDouble(a); 
String b; 
while (true) { // Запускаем цикл и просим сделать ввод числа 
 
b = JOptionPane.showInputDialog(null, "Введите второе число"); // Диалог ввода 
 
// Далее следуют всевозможные проверки, что пользователь ввел корректное значение 
 
if (b == null || b.equals("")) { //Проверяем пустую строку ввода 
JOptionPane.showMessageDialog(null, "Вы так и ничего не ввели") ; 
continue; } 
 
try {double b1 = Double.parseDouble(b); // Провенряем, что ввели не буквы, пытаясь парсить введенное на первом этапе строчное значение 
} 
catch (NumberFormatException e) { 
JOptionPane.showMessageDialog(null,"Вы ввели не число, код ошибки = " + e); 
continue ; } 
 
JOptionPane.showMessageDialog(null, "Спасибо, вы ввели второе число " ) ; 
break; 
} 
{double b1 = Double.parseDouble(b); 
int bv; 
String str; 
String c1; 
double d; 
int d1=0; 
String c; 
do 
{ String str = JOptionPane.showMessageDialog(null, "Введите математический знак: + ,-, /,* " ); 
bv = Integer.parseInt(str); 
switch(bv) 
{case 1: 
Random generator = new Random(); 
if (bv == 4) 
{ (с==null||с.equals("")){JOptionPane.showMessageDialog(null, "Вы так и ничего не ввели");break;} 
int random = generator.nextInt(bv); 
 
switch(bv) 
{ 
case 1: 
{(c.equals("+")) d=a1+b1; JOptionPane.showMessageDialog(null, "Сумма чисел = " + d + random) ; break;} 
case 2: 
{ (c.equals("-"));d=a1-b1; JOptionPane.showMessageDialog(null, "Разность чисел ="+d + random);break; } 
case 3: 
{ (c.equals("*")); d=a1*b1;JOptionPane.showMessageDialog(null, "Произведение чисел ="+ d + random );break ;} 
case 4: 
{ (c.equals("*")); d=a1*b1;JOptionPane.showMessageDialog(null, "Произведение чисел ="+ d + random );break ; } 
default: 
{ 
JOptionPane.showMessageDialog(null,"WRONG INPUT"); 
break; 
} 
} 
} 
 
while (b !=5); 
break; 
 
case 2: 
JOptionPane.showMessageDialog(null,"Пожалуйста, введите знак +,-,*,/ "); 
System.exit(0); 
default: 
JOptionPane.showMessageDialog(null,"Program will return"); 
break; 
 
} 
} 
while (b !=2); 
} 
} 
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.06.2019, 09:35
Ответы с готовыми решениями:

Switch, case
Есть такой код, проблема в том, что переменная degree заполняеться данными из case блоков, даже не...

Ограничения switch case
Как проверить значение из switch, на такое вот (255 & 0xff) << 24 | (238 & 0xff) << 16 | (130 &...

Switch , case : Непонятки
Пишу игру, использую походу дело switch , case . Когда подставлял в case Enum все работало.Потом...

Конструкция выбора switch-case
Доброго времени суток! Я разрабатываю графическое приложение и мне нужно получать события от...

2
Автоматизируй это!
Эксперт Python
7215 / 4712 / 1224
Регистрация: 30.03.2015
Сообщений: 13,421
Записей в блоге: 29
06.06.2019, 09:59 2
Цитата Сообщение от tracerX Посмотреть сообщение
{ String str = JOptionPane.showMessageDialog(null, "Введите математический знак: + ,-, /,* " );
bv = Integer.parseInt(str);
а разве математический знак можно привести к инту? + - это не числа
1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
06.06.2019, 10:47 3
tracerX, 1) ты в курсе, что ИДЕ умеют нормально форматировать код, а не так, как это делаешь ты? 2) Кроме всего прочего неплохо бы объявлять переменные там, где они используются, а не в другом конце портянки.3)
Цитата Сообщение от tracerX Посмотреть сообщение
main(String[] args, Object с)
это вообще хз что
4) повторяющийся код выноси в методы
5) комментарии типа таких - не нужны
Цитата Сообщение от tracerX Посмотреть сообщение
// Диалог ввода
6) Как вот эту хрень читать?
Цитата Сообщение от tracerX Посмотреть сообщение
switch(bv)
{case 1:
Random generator = new Random();
if (bv == 4)
{ (с==null||с.equals("")){JOptionPane.showMessageDialog(null, "Вы так и ничего не ввели");break;}
int random = generator.nextInt(bv);
switch(bv)
{
case 1:
{(c.equals("+")) d=a1+b1; JOptionPane.showMessageDialog(null, "Сумма чисел = " + d + random) ; break;}
case 2:
{ (c.equals("-"));d=a1-b1; JOptionPane.showMessageDialog(null, "Разность чисел ="+d + random);break; }
case 3:
{ (c.equals("*")); d=a1*b1;JOptionPane.showMessageDialog(null, "Произведение чисел ="+ d + random );break ;}
case 4:
{ (c.equals("*")); d=a1*b1;JOptionPane.showMessageDialog(null, "Произведение чисел ="+ d + random );break ; }
default:
{
JOptionPane.showMessageDialog(null,"WRONG INPUT");
break;
}
}
}
7)
Цитата Сообщение от tracerX Посмотреть сообщение
Подскажите пожалуйста, почему возникает ошибка?
ты главное не говори какая и стэктрейс не показывай
1
06.06.2019, 10:47
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.06.2019, 10:47
Помогаю со студенческими работами здесь

Оператор выбора Switch-case
Не представляю как это сделать. Дано вещественное число, вывести целую и дробную части отдельно....

Можно ли заново пройти одит и case в switch?
Есть switch в котором идут case, и в одном case я хочу сделать так, если в нем не выполняется if...

ООП или как избавиться от switch -case
Нужен совет, есть порядка 20 методов, которые по сути принимают ввод с клавиатуры, и делают они...

цикл для switch
Здравствуйте! Возник вопрос организации кода. Как оформить код, чтобы при выборе неправильного...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru