Ошибки, баги, вопросы - страница 3528

 
Aleksey Vyazmikin #:

В справке есть описание оператора-переключателя switch, там такой пример приведён

Какой тип у переменной x?

Ставишь string и получаешь ошибку

Предлагаю делать воспроизводимые примеры в документации.

Мне собственно нужен переключатель по значению строковой переменной.

полная цитата ПЕРВОГО АБЗАЦА справки :

Сравнивает значение выражения с константами во всех вариантах case и передает управление оператору, который соответствует значению выражения. Каждый вариант case может быть помечен целой константой, символьной константой или константным выражением. Константное выражение не может включать переменные или вызовы функций. Выражение оператора switch должно быть целого типа int или uint.

ЧТО ТУТ НЕПОНЯТНОГО ???

прямым же текстом написано какие типы и как работает

Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
  • www.mql5.com
Целый тип char занимает в памяти 1 байт (8 бит) и позволяет выразить в двоичной системе счисления 2^8 значений=256. Тип char может содержать как...
 
Maxim Kuznetsov #:

полная цитата ПЕРВОГО АБЗАЦА справки :

ЧТО ТУТ НЕПОНЯТНОГО ???

прямым же текстом написано какие типы и как работает

Пример непонятен. Если x типа int, то как попасть в символьную метку?

 
Aleksey Vyazmikin #:

Пример непонятен. Если x типа int, то как попасть в символьную метку?

Там же в примере написано:
case 'A':
 
Aleksey Vyazmikin #:
Мне собственно нужен переключатель по значению строковой переменной.

Это невозможно.

Только если вместо switch использовать конструкцию if... - else if... - else if... ... else

 
Artyom Trishkin #:
Там же в примере написано:

Когда int x будет равен 'A' - это не понятно из примера.

 
Artyom Trishkin #:
Там же в примере написано:

Там используется код символа. Поэтому 2 и более символа работать не будут. Что Artyom что Alexey будет воспринято одинаково, только код первого символа.

 
Slava #:

Это невозможно.

Только если вместо switch использовать конструкцию if... - else if... - else if... ... else

Понятно, спасибо за ответ.

 
Alexey Viktorov #:

Там используется код символа. Поэтому 2 и более символа работать не будут. Что Artyom что Alexey будет воспринято одинаково, только код первого символа.

А, тогда понятно, но пример требует больше пояснений в документации.

 
Aleksey Vyazmikin #:

А, тогда понятно, но пример требует больше пояснений.

Каких пояснений? В документации есть пример где символ в одинарных кавычках равен коду символа.

 
Slava #:

Это невозможно.

Только если вместо switch использовать конструкцию if... - else if... - else if... ... else

Оператор "StringToEnum" позволил бы решить такую задачу, в ряде случаев требуется.