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. 1
    Ilya Burakov ответил:

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

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

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

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

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

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

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

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

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

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

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

    Можно через label

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

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

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

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

  9. 9
    clear golf bubble umbrella color white trim by elite ответил:

    clear golf bubble umbrella color white trim by elite…

    shopping bag with emporio armani signature and logo charm womanlouis vuitton new handbags 2018 louisvuittonwentworth polished tray serving bowls trays serveware ralph laurenundefined undefined gg2570 watch…

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