Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.96
Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
#1

Switch двойное условие - C++

14.04.2012, 17:28. Просмотров 4352. Ответов 9
Метки нет (Все метки)

Как сделать двойное условие для оператора switch?
Аналогия в if: "if (a>b & b>c)" .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2012, 17:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Switch двойное условие (C++):

Двойное условие - C++
как сделать двойное условие в уловии if ?! на пример X<100, но X>50

Файл: как сделать двойное условие? - C++
#pragma warning(disable : 4996) #include "iostream" #include <string.h> //библиотека для работы со строками #include <stdio.h> //...

Условие Switch - C++
Ребят, вот кусок кода: for(int i1 = 1; i1 <= c; i1++) { for(int i2 = 1; i2 <= a; i2++) { switch(d) { case i2: r = r + 1;...

Условие в операторе switch - C++
Всем привет, есть коД: switch(TYPE) { case 1: total = number1 + number2; cout << "\n" <<...

Динамические массивы, как отобразить в switch условие, если функция возвращает 0 - C++
Подскажите пожалуйста, если стоит условие, что при некорректно введенных данных, а именно элементов массива - вернуть NULL, как это...

Двойное наследование - C++
Доброго времени суток. Я делаю домашнее задание, в котором надо создать класс из него создать два производных класса, а потом из этих двух...

9
fasked
Эксперт С++
4948 / 2528 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
14.04.2012, 17:52 #2
Цитата Сообщение от Grey5 Посмотреть сообщение
Аналогия в if: "if (a>b & b>c)" .
Это не аналогия.
1
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
14.04.2012, 17:58 #3
Оно?
C
1
2
3
4
5
6
7
switch(value)
{
  case 1:
  case 2:
    do_something();
  /* ... */
}
Grey5, объясни, что ты имел в виду? Если ты хочешь использовать в switch условные выражения — то ничего не получится, сразу говорю.
0
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
14.04.2012, 18:11 #4
В операторе switch, выражение, стоящее справа от оператора case, должно быть константой и, естественно, быть известным на этапе компиляции.
0
Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
14.04.2012, 18:51  [ТС] #5
Так, немного не так задал вопрос. Нужно вот это красиво переделать, используя switch.
C++
1
2
3
4
5
6
7
8
 if (a == 1 & b<15)
  {/*операторы*/}
  else if (a == 2 & b<15)
  {/*операторы*/}
  else if (a == 3 & c<20)
  {/*операторы*/}
  else if (a == 4 & c<20)
  {/*операторы*/}
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
14.04.2012, 18:56 #6
Цитата Сообщение от Nameless One Посмотреть сообщение
Оно?
C
1
2
3
4
5
6
7
switch(value)
{
  case 1:
  case 2:
    do_something();
  /* ... */
}
Grey5, объясни, что ты имел в виду? Если ты хочешь использовать в switch условные выражения — то ничего не получится, сразу говорю.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
int main()
{
 int a=5,b=4,c=3;
 switch(a>b && b>c)
 {
  case true: std::cout<<"true"; break;
  case false: std::cout<<"false"; break;
}
 std::cout<<std::endl;
 system("pause");
 return 0;
}
Добавлено через 3 минуты
Цитата Сообщение от Grey5 Посмотреть сообщение
Так, немного не так задал вопрос. Нужно вот это красиво переделать, используя switch.
C++
1
2
3
4
5
6
7
8
 if (a == 1 & b<15)
  {/*операторы*/}
  else if (a == 2 & b<15)
  {/*операторы*/}
  else if (a == 3 & c<20)
  {/*операторы*/}
  else if (a == 4 & c<20)
  {/*операторы*/}
C++
1
2
3
4
5
6
7
8
 switch(a)
 {
  case 1: if (b<15) { }; break;
  case 2: if (b<15) { }; break;
  case 3: if (c<20) { }; break;
  case 4: if (c<20) { }; break;
  default: break;
}
2
Toshkarik
1143 / 860 / 51
Регистрация: 03.08.2011
Сообщений: 2,390
Завершенные тесты: 1
14.04.2012, 18:56 #7
Nekto, он имел ввиду, что нельзя использовать условные операторы в качестве выражений меток ( case ).

Grey5, в вашем случае никак красиво переделать под switch не получится.
1
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
14.04.2012, 18:56 #8
Nekto, ну и что? Условных выражений в метках case я так и не наблюдаю
1
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
14.04.2012, 19:02 #9
Цитата Сообщение от Nameless One Посмотреть сообщение
Nekto, ну и что? Условных выражений в метках case я так и не наблюдаю
Зато в switch их наблюдаешь.
0
Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
14.04.2012, 19:51  [ТС] #10
Спасибо всем большое)
Можете закрывать тему.
0
14.04.2012, 19:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2012, 19:51
Привет! Вот еще темы с ответами:

Двойное Неравенство - C++
Прошу помочь найти ошибку в коде: #include &lt;iostream&gt; using namespace std; int main () { unsigned long A, B, C, D; int Cou = 0;...

Оптимальная конструкция switch-case-while / while-switch-case - C++
Имеется конструкция типа: switch() { case 1: while() { ... }

Двойное объявление класса - C++
Для чего два раза писать class Animal? class Animal; void setValue (Animal&amp;, int); class Animal { public: Animal(); ...

Двойное сравнение char - C++
Код: int main() { std::string buf; std::cin &gt;&gt; buf; std::cout &lt;&lt; (buf==buf=='/') &lt;&lt; '\n'; ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru