2015-02-24 3 views
1
Procedure Exchangerates; 
var 
    selection: integer; 
    answer, GBP, USD, EUR, JPY: string; 
begin 
    Assignfile(ERfile, 'ER.dat'); 
    reset(ERfile); 
    while not eof(erfile) do 
    begin 
    read(erfile, er); 
    writeln('Which currency do you want to convert from, euros, pounds, dollars or yen'); 
    readln(answer); 
    if answer = 'GBP' then 
    begin 
     writeln('GBP'); 
     writeln('How many pounds to you want to convert to dollars?'); 
     readln(selection); 
     writeln(selection*er.usdtopound:0:2); 
     writeln('How many pounds do you want to convert to euros?'); 
     readln(selection); 
     writeln(selection*er.eurotopound:0:2); 
     writeln('How many pounds do you want to convert to yen?'); 
     readln(selection); 
     writeln(selection*er.yentopound:0:2) ; 
    end; 
    else 
    if answer = 'EUR' then 
     writeln('hi'); 
    end; 
    closefile(erfile); 
end; 

Это программа формы процедуры, которая должна конвертироваться между валютами, когда я пытаюсь запустить оператор if, я получаю сообщение об ошибке, по какой-либо причине, и как я могу ее исправить? Ошибка: [Ошибка] Currencyconvertor3.dpr (75): ';' не допускается до 'ELSE', и когда я удалить с запятой я получаю больше 3 ошибокDelphi 7 else if statement error?

[Error] Currencyconvertor3.dpr (75): 'END' ожидалось, но 'ELSE' найдено

[Error] Currencyconvertor3 .dpr (88): Ожидаемая декларация, но идентификатор «closefile» найден

[Ошибка] Currencyconvertor3.dpr (90): '.' ожидаемый, но ';' найдено

+0

* У меня есть ошибка * не является полезным описанием проблемы. Вы точно знаете **, какую ошибку вы получаете, и нет никаких оснований для того, чтобы вы не смогли включить ее для нас. –

+0

SOrry отредактирует в мой пост – SidTheSloth

+0

Сообщение об ошибке, которое вы получали, является четким указанием проблемы и как исправить синицу. Удаление недопустимой полуколонии ';' устраняет ошибку. Дополнительные ошибки, о которых вы говорите, не связаны с кодом, который вы указали. –

ответ

4

Вместо

end; 
else if answer = 'EUR' then 

вам нужно

end 
else if answer = 'EUR' then 

Ложное запятой расторг if заявление.

Если вы более аккуратно отформатировали свой код, было бы, вероятно, более очевидным, что вы сделали неправильно.

+0

Спасибо, неудобно, что я не могу поддержать вас, но я ценю это :) – SidTheSloth

+0

Вы можете принять ответ, если хотите: http://meta.stackexchange.com/questions/5234/how-does-accepting-an- ответ-работа –