Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 4
Регистрация: 03.04.2017
Сообщений: 63

Упрощение оператора выбора (switch)

17.10.2017, 23:22. Показов 1514. Ответов 4
Метки case (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу, которая в зависимости от характера ветра выдает сообщение о его скорости от 1 до 4 м/с - слабый (1); от 5-10 м/с - умеренный (2); от 9-18 м/с - сильный(3); больше 19 м/с - ураганный (4);
Помогите сделать более правильно и меньше)
C#
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                int a = int.Parse(textBox1.Text);
                switch (a)
                {
                    case 1: listBox1.Items.Clear();
                        listBox1.Items.Add("Ваш ветер слабый"); break;
                    case 2: listBox1.Items.Clear(); listBox1.Items.Add("Ваш ветер слабый"); break;
                    case 3: listBox1.Items.Clear(); listBox1.Items.Add("Ваш ветер слабый"); break;
                    case 4: listBox1.Items.Clear(); listBox1.Items.Add("Ваш ветер слабый"); break;
                    case 5: listBox1.Items.Clear(); listBox1.Items.Clear();
                        listBox1.Items.Add("Ваш ветер умеренный"); break;
                    case 6: listBox1.Items.Clear(); listBox1.Items.Add("Ваш ветер умеренный"); break;
                    case 7: listBox1.Items.Clear(); listBox1.Items.Add("Ваш ветер умеренный"); break;
                    case 8: listBox1.Items.Clear(); listBox1.Items.Add("Ваш ветер умеренный"); break;
                    case 9: listBox1.Items.Clear(); listBox1.Items.Add("Ваш ветер умеренный"); break;
                    case 10: listBox1.Items.Clear(); listBox1.Items.Add("Ваш ветер умеренный"); break;
                    case 11: listBox1.Items.Clear();
                        listBox1.Items.Add("Ваш ветер сильный"); break;
                    case 18: listBox1.Items.Clear(); listBox1.Items.Add("Ваш ветер сильный"); break;
                    case 19: listBox1.Items.Clear();
                        listBox1.Items.Add("Ваш ветер ураганный"); break;
                    default: listBox1.Items.Clear();
                        listBox1.Items.Add("Введенные данные некоректны"); break;
                }
            }
            catch { MessageBox.Show("Ошибка: Введите данные корректно"); }
       
                    
                        }
                    }
                   
            }
Заранее спасибо..
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.10.2017, 23:22
Ответы с готовыми решениями:

Конвертер величин с использованием TextBox и оператора switch case
моя проблема у меня 4 TextBox (мм, см, дм, м) я пишу программу, которая должна переводить на пример метр в мм, см, дм. Если я в TextBox cm...

Символы и числа в метках case оператора выбора switch
На вход программе поступает числовое выражение оценки (2, 3, 4, 5), на выход— строковое выражение оценки («неудовлетворительно»,...

Оптимизация оператора switch
Ребята! Бывают ситуации, когда необходимо проверить большое количество величин и делать это через оператор swith неудобно, так как...

4
315 / 244 / 149
Регистрация: 03.10.2017
Сообщений: 886
Записей в блоге: 1
17.10.2017, 23:32
Зачем использовать кейсы, если через if проще

C#
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
private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                int a = int.Parse(textBox1.Text);
                if (a >= 1 && a < 5)
                {
                    listBox1.Items.Clear();
                    listBox1.Items.Add("Ваш ветер слабый");
                }
                else if (a <= 10&&a>=5)
                {
                    listBox1.Items.Clear(); listBox1.Items.Add("Ваш ветер умеренный");
                }
                else if(a<19&&a>10)
                {
                    listBox1.Items.Clear();
                    listBox1.Items.Add("Ваш ветер ураганный");
                }
                else
                {
                    listBox1.Items.Clear();
                    listBox1.Items.Add("Введенные данные некоректны");
                }
 
            }
            catch { MessageBox.Show("Ошибка: Введите данные корректно"); }
        }
1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
18.10.2017, 01:14
Лучший ответ Сообщение было отмечено TinSoldier как решение

Решение

TinSoldier, if-ом будет проще, как уже справедливо отметил Masson1848, но если нужно использовать именно switch, то используй возможноть указать несколько case для одного блока.
C#
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
private void button1_Click(object sender, EventArgs e)
{
    int a;
    if (!int.TryParse(textBox1.Text, out a) || a < 0) a = -1;
 
    listBox1.Items.Clear();
    switch (a)
    {
        case -1: listBox1.Items.Add("Введенные данные некоректны"); break;
 
        case 0: listBox1.Items.Add("Штиль"); break; 
 
        case 1:
        case 2: 
        case 3:
        case 4: listBox1.Items.Add("Ваш ветер слабый"); break;
 
        case 5:
        case 6:
        case 7:
        case 8:
        case 9: 
        case 10: listBox1.Items.Add("Ваш ветер умеренный"); break;
 
        case 11:
        case 12:
        case 13:
        case 14:
        case 15:
        case 16:
        case 17:
        case 18: listBox1.Items.Add("Ваш ветер сильный"); break;
 
        default: listBox1.Items.Add("Ваш ветер ураганный"); break;
    }
}
1
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
18.10.2017, 16:20
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        private void button1_Click(object sender, EventArgs e)
        {
            int a;
            if (!int.TryParse(textBox1.Text, out a) || a < 0)
                a = 0;
 
            listBox1.Items.Clear();
 
            switch (a)
            {
                case 0:
                    MessageBox.Show("Ошибка: Введите данные корректно"); break;
                case var _ when a >= 1 && a <= 4:
                    listBox1.Items.Add("Ваш ветер слабый"); break;
                case var _ when a >= 5 && a <= 10:
                    listBox1.Items.Add("Ваш ветер умеренный"); break;
                case var _ when a >= 11 && a <= 18:
                    listBox1.Items.Add("Ваш ветер сильный"); break;
                default:
                    listBox1.Items.Add("Ваш ветер ураганный"); break;
            }
        }
2
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18298 / 14222 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
18.10.2017, 16:33
Someone007, хороший пример. Не помешает только уточнить что это C# 7.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.10.2017, 16:33
Помогаю со студенческими работами здесь

С использованием оператора switch
Помогите, пожалуйста, решить задачу на c# с использованием оператора switch. Написать программу, которая по номеру элемента равностороннего...

Оператора switch / case
Локатор ориентирован на одну из сторон света ( «С» - север, «Ю» - юг, «З» - запад, «В» - восток) и может принимать три цифровые команды: 1...

Правильное использование оператора switch
Не могу понять зачем в этой задаче нужен оператор switch и как его ипользовать?Вот условие задачи: Ввести два вещественных числа и знак...

Подсчет количества операторов в теле оператора switch
Здравствуйте, у меня есть пару вопросов по теории Сколько операторов выполняется в теле оператора switch(i): switch(i) { ...

Реализация выбора не используя switch
Нужно реализовать выбор в консоли. Реализовал на switch switch(Choose) { case &quot;login&quot;: ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru