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

Замена if else на switch

18.10.2016, 16:01. Показов 3838. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Нуждаюсь в помощи с лабораторной работой.

Задание: написать программу, решающую данное уравнение, используя if else:
Замена if else на switch


Программу написал без проблем:
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
import java.util.Scanner;
 
public class lyolyo {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner in = new Scanner(System.in);
        double a = 0, b = 0, d=0, x = 0, y = 0;
        System.out.println("Введите значение a");
        a = in.nextDouble();
        System.out.println("Введите значение b");
        b = in.nextDouble();
        if(b<0)
        {
            x = Math.pow(a,5)+b;
        }
        else if(b>=0 && b<1.5 && a!=b)
        {
            x = Math.pow(a,2)+(a/(a-b));
        }
        else if(b>=1.5 && b<2.5)
        {
            x = Math.pow(a,3)+Math.pow(a,2)*b+Math.pow(b,3);
        }
        else if(b>=2.5)
        {
            x = Math.pow(a,4);
        }
        System.out.println("x=" +x);
        System.out.println("Введите значение d");
        d = in.nextDouble();
        if(x>2.3)
        {
            y = 2.3;
        }
        else if(x<=2.3)
        {
            y = d-(Math.pow(x,2)/2);
        }
        System.out.println("y=" +y);
        
    }
    
}
Далее мне нужно сделать тоже самое, но теперь используя оператор switch. Как это сделать? Пытался гугулить - не помогло, везде лишь примеры с месяцами или днями, по которым ничего невозможно понять.

Пробовал сделать что-то вроде
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        switch (x) {
            case 1:
                if (b<0)
            x = (int) (Math.pow(a,5)+b);
                break;
            case 2:
                if(b>=0 && b<1.5 && a!=b)
            x = (int) (Math.pow(a,2)+(a/(a-b)));
                break;
            case 3:
                if(b>=1.5 && b<2.5)
            x = (int) (Math.pow(a,3)+Math.pow(a,2)*b+Math.pow(b,3));
                break;
            case 4:
                if(b>=2.5)
            x = (int) Math.pow(a,4);
                break; 
        }
но знаю, что это не верно. Тогда как?

P.S. извиняюсь, если создал не в том разделе
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2016, 16:01
Ответы с готовыми решениями:

Замена if на switch
Задача. Это нужно сделать с помощью switch. ( Для натурального числа k вывести фразу “Мы нашли k...

Замена switch на if
Задание: Заменить в примере оператор switch структурой операторов if. Вопрос: Как можно заменить...

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

Замена if-ов на switch case
В общем, было такое задание: Дана строка. Найдите в этой строке второе вхождение буквы f и...

2
Эксперт функциональных языков программированияЭксперт Java
4541 / 2735 / 486
Регистрация: 28.04.2012
Сообщений: 8,642
18.10.2016, 16:30 2
Цитата Сообщение от DaveBoy Посмотреть сообщение
но теперь используя оператор switch
Но зачем? switch тут совершенно не к месту.

Цитата Сообщение от DaveBoy Посмотреть сообщение
Пытался гугулить - не помогло, везде лишь примеры с месяцами или днями, по которым ничего невозможно понять.
Там всё предельно понятно.
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
18.10.2016, 18:42 3
Можно еще как-нибудь вот так извратиться:
Java
1
2
3
4
5
6
7
8
IntStream.range(0, 10).forEach(i->{
            System.out.println(
                    (i < 2) ? "Меньше двух" 
                  : (i < 4) ? "От 2 до 4" 
                  : (i < 6) ? "От 4 до 6" 
                  : (i < 8) ? "От 6 до 8" 
                  : "Больше 8");
        });
0
18.10.2016, 18:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2016, 18:42
Помогаю со студенческими работами здесь

Замена switch/case
Здравствуйте, я написал программу, теперь хочу чтобы по вводу в консоль 1 у меня выполнялся вот...

Замена switch полиморфизмом
Здравствуйте. Читаю в данный момент книгу по рефакторингу, решил посмотреть свой старый код и...

Оправдана ли замена If на Switch
Всем привет! Я получаю ответ от сервера: string killer; killer = new...

Замена чисел на символы (switch)
Написать программу замены введенного числа от 0 до 9 соответствующим символом (1=! 2=@ ...) с...


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

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