ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|
Вопрос(ы) по Турбо Паскаль 7.0 |

18.05.2008, 21:36
|
|
Постоянный
Регистрация: 04.04.2008
Сообщений: 527
Провел на форуме: 1494768
Репутация:
272
|
|
Вопрос(ы) по Турбо Паскаль 7.0
Здравствуйте!
Изучаю учебник Турбо Паскаль 7.0 и у меня появился такой вопрос:
Чем отличаеться условный оператор If от Case?
В чем фишка каждого, и где они используються?
В учебнике все выложено как-то не очень понятно.
Буду очень благодарен за ответы!
|
|
|

18.05.2008, 22:02
|
|
Новичок
Регистрация: 03.07.2007
Сообщений: 18
Провел на форуме: 98311
Репутация:
28
|
|
Он отличается тем, что здесь значение выражения не приводится к логическому типу, а просто сравнивается со значениями, перечисленными после ключевых слов case (значение1, значение 2 и т.д.). Если значение выражения совпало с каким-то вариантом, то выполняется соответствующий блок действий – от двоеточия после совпавшего значения до конца case или до первого оператора break, если таковой найдется.
Последний раз редактировалось merax; 18.05.2008 в 22:07..
|
|
|

18.05.2008, 22:17
|
|
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме: 379101
Репутация:
136
|
|
Также посмотри на практический пример:
Код:
case uMsg of
WM_COMMAND : begin
if wParam = IDC_CLOSE then End_Work;
if wParam = IDC_ABOUT then
MessageBox(hWin, AboutText, AboutCapt, 0);
if (LOWORD(wParam) = IDC_NAME) and
(HIWORD(wParam) = EN_CHANGE) then Generate;
end;
WM_INITDIALOG : begin
hIcon := LoadIcon(Inst, 'MAINICON');
SendMessage(hWin, WM_SETICON, ICON_SMALL, hIcon);
SendMessage(hWin, WM_SETICON, ICON_BIG, hIcon);
SetWindowText(hWin, WindowTitle);
hWnd := hWin;
end;
WM_DESTROY,
WM_CLOSE : End_Work;
end;
Последний раз редактировалось 0verbreaK; 18.05.2008 в 22:20..
|
|
|

18.05.2008, 22:18
|
|
Постоянный
Регистрация: 04.04.2008
Сообщений: 527
Провел на форуме: 1494768
Репутация:
272
|
|
Спасиб.
|
|
|

18.05.2008, 22:31
|
|
Постоянный
Регистрация: 04.04.2008
Сообщений: 527
Провел на форуме: 1494768
Репутация:
272
|
|
Честно говоря с примера ничего не понял.. 
|
|
|

18.05.2008, 22:39
|
|
Постоянный
Регистрация: 04.04.2008
Сообщений: 527
Провел на форуме: 1494768
Репутация:
272
|
|
А вот смотрите пример:
if x=1
then write ('Понедельник')
else if x=2
then write ('Вторник')
и так дальше..
Тоесть если if не находит x=1 то идет по порядку до вторника (до if x=2)? Потом до среды и т.д?
|
|
|

18.05.2008, 22:43
|
|
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
Провел на форуме: 4608122
Репутация:
874
|
|
Твой пример с кейси.
case x of
1 : write ('Понедельник')
2 : write ('Вторник')
...
и т.д.
end;
Последний раз редактировалось Red_Red1; 18.05.2008 в 22:47..
|
|
|

18.05.2008, 22:45
|
|
Banned
Регистрация: 23.07.2007
Сообщений: 87
Провел на форуме: 2147329
Репутация:
613
|
|
Сообщение от Andres
Тоесть если if не находит x=1 то идет по порядку до вторника (до if x=2)? Потом до среды и т.д?
х=1 - условие, if проверяет выполнение этого условия. Если оно не выполняется, то выполняется условие следующего блока, в данном случае блока else if. Да, потом до среды и т.д., если для них есть соответствующие условия.
|
|
|

18.05.2008, 22:49
|
|
Постоянный
Регистрация: 04.04.2008
Сообщений: 527
Провел на форуме: 1494768
Репутация:
272
|
|
Спасибо парни огромное Вы меня просветили больше чем автор, спасибо, реально!))))))))))))))))))))))))))))))))))) )))))))))))))))
|
|
|

18.05.2008, 22:50
|
|
Постоянный
Регистрация: 04.04.2008
Сообщений: 527
Провел на форуме: 1494768
Репутация:
272
|
|
P.s - Автор книги))
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|