singlepost

Есть лив pascalаналог оператора Case ofдля текстовых вариантов? << На главную или назад  

Есть лив pascalаналог оператора Case ofдля текстовых вариантов, т.е. чтоб вариантами были не числа а строки?К примеру
var a:string;
begin
readln(a);
case a of
'hi':writeln('hello');
'bye':writeln('bye');
'how are you':writeln('Fine');
end.
В такой программе выдаётся ошибка, а как сделать подругому но не через if then?

36 ответов в теме “Есть лив pascalаналог оператора Case ofдля текстовых вариантов?”

  1. 8
    Алексей Скорятин ответил:

    ну думаю AnsiIndexOf можно и на паскале намутить, хотя не помню как там с array of const, но на худой конец можно строки объединить в одну с каким нить разделителем

  2. 7
    Антон Щиров ответил:

    Вот стандартный аналог #4. //www.sql.ru/forum/actualthread.aspx?tid=272134...
    Правда не паскаль а делфя

  3. 6
    Yorkfield Creed ответил:

    Можно через label

  4. 5
    Ilya Burakov ответил:

    #4 – по сути это и есть извращенная хэш-функция

  5. 4
    Михаил Асташкевич ответил:

    "пронумеровать свои строки и запихнуть в функцию, возвращающую строку по номеру. другая функция пусть осуществляет поиск :) "

    вы забыли, что это все нужно забить в константы, case в паскале не работает с переменными

  6. 3
    Леонид Максимов ответил:

    пронумеровать свои строки и запихнуть в функцию, возвращающую строку по номеру. другая функция пусть осуществляет поиск :)

  7. 2
    Михаил Асташкевич ответил:

    ИМХО легче и быстрее написать много if'ов, чем писать хэш

  8. 1
    Ilya Burakov ответил:

    Хэш-таблицу соответствий между вариантом и действием

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.