Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.96
Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
14.04.2012, 17:28     Switch двойное условие #1
Как сделать двойное условие для оператора switch?
Аналогия в if: "if (a>b & b>c)" .
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2012, 17:28     Switch двойное условие
Посмотрите здесь:

Двойное условие C++
C++ Двойное Неравенство
C++ Оптимальная конструкция switch-case-while / while-switch-case
Двойное сравнение char C++
C++ Двойное объявление класса
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
14.04.2012, 17:52     Switch двойное условие #2
Цитата Сообщение от Grey5 Посмотреть сообщение
Аналогия в if: "if (a>b & b>c)" .
Это не аналогия.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
14.04.2012, 17:58     Switch двойное условие #3
Оно?
C
1
2
3
4
5
6
7
switch(value)
{
  case 1:
  case 2:
    do_something();
  /* ... */
}
Grey5, объясни, что ты имел в виду? Если ты хочешь использовать в switch условные выражения — то ничего не получится, сразу говорю.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
14.04.2012, 18:11     Switch двойное условие #4
В операторе switch, выражение, стоящее справа от оператора case, должно быть константой и, естественно, быть известным на этапе компиляции.
Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
14.04.2012, 18:51  [ТС]     Switch двойное условие #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)
  {/*операторы*/}
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
14.04.2012, 18:56     Switch двойное условие #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;
}
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
14.04.2012, 18:56     Switch двойное условие #7
Nekto, он имел ввиду, что нельзя использовать условные операторы в качестве выражений меток ( case ).

Grey5, в вашем случае никак красиво переделать под switch не получится.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
14.04.2012, 18:56     Switch двойное условие #8
Nekto, ну и что? Условных выражений в метках case я так и не наблюдаю
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
14.04.2012, 19:02     Switch двойное условие #9
Цитата Сообщение от Nameless One Посмотреть сообщение
Nekto, ну и что? Условных выражений в метках case я так и не наблюдаю
Зато в switch их наблюдаешь.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2012, 19:51     Switch двойное условие
Еще ссылки по теме:

C++ Условие Switch
Двойное наследование C++
Двойное включение заголовочного файла C++

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

Или воспользуйтесь поиском по форуму:
Grey5
2 / 2 / 0
Регистрация: 11.03.2010
Сообщений: 178
14.04.2012, 19:51  [ТС]     Switch двойное условие #10
Спасибо всем большое)
Можете закрывать тему.
Yandex
Объявления
14.04.2012, 19:51     Switch двойное условие
Ответ Создать тему
Опции темы

Текущее время: 16:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru