Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Вопрос(ы) по Турбо Паскаль 7.0 (https://forum.antichat.xyz/showthread.php?t=70727)

Andres 18.05.2008 21:36

Вопрос(ы) по Турбо Паскаль 7.0
 
Здравствуйте!

Изучаю учебник Турбо Паскаль 7.0 и у меня появился такой вопрос:

Чем отличаеться условный оператор If от Case?
В чем фишка каждого, и где они используються?

В учебнике все выложено как-то не очень понятно.

Буду очень благодарен за ответы!

merax 18.05.2008 22:02

Он отличается тем, что здесь значение выражения не приводится к логическому типу, а просто сравнивается со значениями, перечисленными после ключевых слов case (значение1, значение 2 и т.д.). Если значение выражения совпало с каким-то вариантом, то выполняется соответствующий блок действий – от двоеточия после совпавшего значения до конца case или до первого оператора break, если таковой найдется.

0verbreaK 18.05.2008 22:17

Также посмотри на практический пример:

Код:

 

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;


Andres 18.05.2008 22:18

Спасиб.

Andres 18.05.2008 22:31

Честно говоря с примера ничего не понял..:(

Andres 18.05.2008 22:39

А вот смотрите пример:

if x=1
then write ('Понедельник')
else if x=2
then write ('Вторник')
и так дальше..

Тоесть если if не находит x=1 то идет по порядку до вторника (до if x=2)? Потом до среды и т.д?

Red_Red1 18.05.2008 22:43

Твой пример с кейси.
case x of
1 : write ('Понедельник')
2 : write ('Вторник')
...
и т.д.
end;

Chuck 18.05.2008 22:45

Цитата:

Сообщение от Andres
Тоесть если if не находит x=1 то идет по порядку до вторника (до if x=2)? Потом до среды и т.д?

х=1 - условие, if проверяет выполнение этого условия. Если оно не выполняется, то выполняется условие следующего блока, в данном случае блока else if. Да, потом до среды и т.д., если для них есть соответствующие условия.

Andres 18.05.2008 22:49

Спасибо парни огромное Вы меня просветили больше чем автор, спасибо, реально!))))))))))))))))))))))))))))))))))) )))))))))))))))

Andres 18.05.2008 22:50

P.s - Автор книги))


Время: 03:53