Энциклопедия Turbo Pascal. Главы 9-11
Страница 37. Ошибки if/then/if/else


Ошибки if/then/if/else

     Даже очень опытные программисты  могут  допустить  ошибку  в
конструкции if/then/if/else. Например, уверены ли вы, что следую-
щий код работает правильно

     if count<100 then
       if count>50 then F1
     else F2;

     Не шутите  с  соответствующим  форматированием.  Предложение
else не ассоциируется с первым if,  а только со вторым if. Помни-
те, что else всегда ассоциируется с ближайшим if. В данном приме-
ре вместо выполнения F2, когда count больше 100, Турбо Паскаль не
делает  ничего.  Кроме  того,  F2 будет выполняться только,  если
count меньше 100 и - если меньше 50.  Вы увидите  это  когда  код
правильно отформатирован:

     if count<100 then
       if count>50 then F1
     else F2;

     Если вы хотите просто выполнить F2,  когда count больше 100,
вам надо было бы использовать конструкцию begin/end, как показано
далее:

     if count<100 then
     begin
       if count>50 then F1;
     end
     else F2;

 
Следующая статья »