Здравствуйте! Изучаю учебник Турбо Паскаль 7.0 и у меня появился такой вопрос: Чем отличаеться условный оператор If от Case? В чем фишка каждого, и где они используються? В учебнике все выложено как-то не очень понятно. Буду очень благодарен за ответы!
Он отличается тем, что здесь значение выражения не приводится к логическому типу, а просто сравнивается со значениями, перечисленными после ключевых слов case (значение1, значение 2 и т.д.). Если значение выражения совпало с каким-то вариантом, то выполняется соответствующий блок действий – от двоеточия после совпавшего значения до конца case или до первого оператора break, если таковой найдется.
Также посмотри на практический пример: Code: 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;
А вот смотрите пример: if x=1 then write ('Понедельник') else if x=2 then write ('Вторник') и так дальше.. Тоесть если if не находит x=1 то идет по порядку до вторника (до if x=2)? Потом до среды и т.д?
х=1 - условие, if проверяет выполнение этого условия. Если оно не выполняется, то выполняется условие следующего блока, в данном случае блока else if. Да, потом до среды и т.д., если для них есть соответствующие условия.
Спасибо парни огромное Вы меня просветили больше чем автор, спасибо, реально!))))))))))))))))))))))))))))))))))))))))))))))))))