Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 16.12.2020
Сообщений: 3
1

Как выполнить поставленную задачу через switch-case, а не через if?

16.12.2020, 01:36. Показов 925. Ответов 2

Author24 — интернет-сервис помощи студентам
Объясняю. Я студент и мы как раз проходим тему ветвления. У меня уже был опыт программирования, так что я легко со всем справляюсь, но одна задача поставила меня в ступор.
Как выполнить поставленную задачу через switch-case, а не через if?

Это лабораторная работа. Её суть заключается в том, чтобы посчитать эту логическую цепочку не только с помощью if.
То есть первый код будет с if, а второй - с switch-case. И если с первым я справился, то со вторым я уже не знаю, что делать. Здесь ведь нужно использовать логическое b<0, но в switch-case такое сделать нельзя. Так вот вопрос: как всё же сделать это через switch-case?

Код программы через if:
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
package lab3;
import java.text.DecimalFormat;
import java.util.Scanner;
public class eqv {
 
    public static void main(String[] args) {
        double a=0,b=0,c=0,x=0,r=0,s=0,t=0;
        Scanner scan = new Scanner (System.in);
        System.out.print("Введите значение переменной a: ");
        a = scan.nextDouble();
        System.out.print("Введите значение переменной b: ");
        b = scan.nextDouble();
        System.out.print("Введите значение переменной c: ");
        c = scan.nextDouble();
        System.out.print("Введите значение переменной x: ");
        x = scan.nextDouble();
        System.out.print("Введите значение переменной t: ");
        t = scan.nextDouble();
        if(b<0)
        {
            r=b/x;
        }
        else {
            r=Math.sqrt(a/c)+Math.sqrt(b/c);
        }
        
        if(0<x && x<3 && r!=0) {
            s=x+Math.sqrt(12.5+Math.pow(r, 2));
        }
        else if(3<=x && x<5 && a<=0) {
            s=0.14*Math.pow(t, 2)+Math.pow(b, 5)*x;
        }
        else {
            s=r*(a/c)+Math.pow(Math.sqrt(r/c), 5);
        }
        String formattedDouble = new DecimalFormat("#0.00").format(s);
        System.out.println("Результат вычислений: " + formattedDouble);
    }
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2020, 01:36
Ответы с готовыми решениями:

Есть идеи как можно выполнить поставленную задачу или хотя бы понять что от меня требуется?
Ряд символов состоит из произвольных чисел, разделенных пробелами. Рассчитать значение данного ряда...

Стек через case в switch
Здравствуйте. Я хочу чтобы при нажатии на &quot;2&quot; у меня выводился на экран мой стек. Но, как обычно,...

Меню через switch и case
Нужна помощь довести программу до ума, в конце программы в main сделать меню меню через switch и...

Выполнить поставленную задачу, используя средства управления вводом/выводом
Решить поставленную задачу, используя средства управления вводом/выводом. Дан целочисленный массив...

2
3572 / 2173 / 570
Регистрация: 02.09.2015
Сообщений: 5,490
16.12.2020, 04:26 2
Цитата Сообщение от Paek Hyen-Woo Посмотреть сообщение
как всё же сделать это через switch-case?
Краткий ответ: "Никак".
Сложный ответ:
1) Integer.compare;
2) Integer.signum
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
jshell> var x = 5
x ==> 5
 
jshell> switch(Integer.signum(Integer.compare(x, 0))) {
   ...>     case -1:
   ...>         System.out.println("x < 0");
   ...>         break;
   ...>     case 0:
   ...>         System.out.println("x == 0");
   ...>         break;
   ...>     case 1:
   ...>         System.out.println("x > 0");
   ...>         break;
   ...> }
x > 0
P. S. switch в Java скорее анти-паттерн, нежели его аналоги в других языках, имхо.
0
295 / 468 / 86
Регистрация: 26.02.2018
Сообщений: 931
Записей в блоге: 2
16.12.2020, 14:36 3
Paek Hyen-Woo,
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//Для r
        String st = "" + b;
        switch(st.charAt(0)){
            case '-' : r = b / x; break;
            default : r= (Math.sqrt(a/c)+Math.sqrt(b/c)); break;
        }
        //для s;
        int v = x > 0 && x < 3  && r != 0 ? 1 : 2;
        switch(v){
            case 1 : s=x+Math.sqrt(12.5+Math.pow(r, 2)); break;
            case 2 : 
                int v1 = x >= 0 && x < 5 && a <= 0 ? 1 : 2;
                switch(v1) {
                    case 1 : s=0.14*Math.pow(t, 2)+Math.pow(b, 5)*x; break;
                    case 2 : s=r*(a/c)+Math.pow(Math.sqrt(r/c), 5); break;
                }
        }
как-то так
1
16.12.2020, 14:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2020, 14:36
Помогаю со студенческими работами здесь

Переделать меню через switch / case
Написал такой код. Условие для задачи такое: Необходимо написать программу со следующей...

Меню в консоли (через switch-case)
программа меню ресторана, работать должна так: открывается все меню а официант выбирает блюда из...

Не открывает картинку через switch case
@Override public void onCheckedChanged(RadioGroup group, int checkedId) { ...

косяк вызова функции через switch case
! кода по моим меркам много, если решитесь помочь, запаситесь терпением))) Итак. Имеется зародыш...

Выполнить поставленную задачу программирования по разделу «Условный оператор». Код сопроводить комментариями
Выполнить поставленную задачу программирования по разделу «Условный оператор». Код сопроводить...

Вывести в одну строку два слова через оператор выбора switch-case
Помогите исправить программу, чтобы выводилось в одну строку сразу 2 выбранных слова,например...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru