Вопрос(ы) по Турбо Паскаль 7.0

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Andres, 18 May 2008.

Thread Status:
Not open for further replies.
  1. Andres

    Andres Elder - Старейшина

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    Здравствуйте!

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

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

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

    Буду очень благодарен за ответы!
     
    1 person likes this.
  2. merax

    merax Member

    Joined:
    3 Jul 2007
    Messages:
    18
    Likes Received:
    6
    Reputations:
    0
    Он отличается тем, что здесь значение выражения не приводится к логическому типу, а просто сравнивается со значениями, перечисленными после ключевых слов case (значение1, значение 2 и т.д.). Если значение выражения совпало с каким-то вариантом, то выполняется соответствующий блок действий – от двоеточия после совпавшего значения до конца case или до первого оператора break, если таковой найдется.
     
    #2 merax, 18 May 2008
    Last edited: 18 May 2008
  3. 0verbreaK

    0verbreaK Elder - Старейшина

    Joined:
    30 Apr 2008
    Messages:
    318
    Likes Received:
    42
    Reputations:
    -3
    Также посмотри на практический пример:

    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;
    
    
     
    #3 0verbreaK, 18 May 2008
    Last edited: 18 May 2008
  4. Andres

    Andres Elder - Старейшина

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    Спасиб.
     
  5. Andres

    Andres Elder - Старейшина

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    Честно говоря с примера ничего не понял..:(
     
  6. Andres

    Andres Elder - Старейшина

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    А вот смотрите пример:

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

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

    Red_Red1 Banned

    Joined:
    12 Jan 2007
    Messages:
    246
    Likes Received:
    258
    Reputations:
    83
    Твой пример с кейси.
    case x of
    1 : write ('Понедельник')
    2 : write ('Вторник')
    ...
    и т.д.
    end;
     
    #7 Red_Red1, 18 May 2008
    Last edited: 18 May 2008
    3 people like this.
  8. Chuck

    Chuck Banned

    Joined:
    23 Jul 2007
    Messages:
    77
    Likes Received:
    180
    Reputations:
    11
    х=1 - условие, if проверяет выполнение этого условия. Если оно не выполняется, то выполняется условие следующего блока, в данном случае блока else if. Да, потом до среды и т.д., если для них есть соответствующие условия.
     
    5 people like this.
  9. Andres

    Andres Elder - Старейшина

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    Спасибо парни огромное Вы меня просветили больше чем автор, спасибо, реально!))))))))))))))))))))))))))))))))))))))))))))))))))
     
  10. Andres

    Andres Elder - Старейшина

    Joined:
    4 Apr 2008
    Messages:
    320
    Likes Received:
    119
    Reputations:
    0
    P.s - Автор книги))
     
    5 people like this.
  11. TOLIA

    TOLIA Elder - Старейшина

    Joined:
    20 Aug 2007
    Messages:
    54
    Likes Received:
    9
    Reputations:
    -11
    смени книжку, где написано понятно
     
  12. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Вопрос решен....ЗАКРЫТО
     
Thread Status:
Not open for further replies.