파스칼에서 마지막으로 작성한 지 20 년이되었습니다. 시작과 끝을 사용하는 블록보다 둥지를 틀면 언어의 구조 요소를 올바르게 사용할 수 없습니다. 예를 들어이 나에게 나는 if then
블록 후 모든 것이 OK입니다 그들과 관련된 begin end
블록을 제거하면 물론파스칼에 대한 올바른 구조 구문은 begin과; (Inno Setup에서)
procedure InitializeWizard;
begin
Log('Initialize Wizard');
if IsAdminLoggedOn then begin
SetupUserGroup();
SomeOtherProcedure();
else begin (*Identifier Expected*)
Log('User is not an administrator.');
msgbox('The current user is not administrator.', mbInformation, MB_OK);
end
end;
end;
을 컴파일러 오류 "예상 식별자"를 가져옵니다.
간혹이 종류의 구문을 올바르게 가져 오면 문제가 해결되지만 if then else
블록을 중첩 할 때 문제가 격렬 해집니다.
여기에서 문제를 해결하는 것만으로는 충분하지 않습니다. 이 블록을 사용하는 방법을 더 잘 이해하고 싶습니다. 나는 분명히 개념이 빠져있다. C++ 또는 C#의 일부가 아마도 내 마음의 다른 부분에서 들어와 내 이해를 망칠 것입니다. 나는 그것에 관한 몇 가지 기사를 읽었으며 잘 이해하고 생각하지 않는다.
은 어떻게 든 내가 잘못된 인상을 가지고 그 다른 블록 시작 블록을 끝냈다 .... 나는 그 미친 아이디어를 어디서 얻었는지 전혀 모른다. 매우 도움이됩니다. 감사합니다. – amalgamate
엔드 블록은 if then 블록을 종료하지 않습니다 .... 그렇습니까? 그저 ';' – amalgamate
@amalgamate :'begin'을 사용하지 않으면'end'가 필요 없습니다. 위의 세 번째 코드 샘플을 참조하십시오. –