2013-06-19 6 views
0

Я кодирую эту функцию, и для строки, где я установил result := -10, компилятор дает мне предупреждение о том, что такое значение никогда не назначается. Что-то не так в моей логике?Как установить различные значения результата в функции Delphi?

function combine (m1, m2 : string) : integer; 
var 
dash : integer; 
distinct : integer; 
i : integer; 

begin 
distinct := 0; 
dash := -1; 

for i := 0 to Length(m1)-1 do 
begin 
    if m1[i] = m2[i] then 
    begin 
     distinct := distinct+1; 
     dash := i; 
     if distinct > 1 then 
      result:= -10; 
    end; 
end; 

result := dash; 
end; 

ответ

8

значение никогда не назначается, так как вы установите значение result в dash в последней строке.

вы можете изменить свой код из

if distinct > 1 then 
     result:= -10; 

в

if distinct > 1 then 
     dash:= -10; 
+0

Я думал, что я мог бы принять заходящего результат в этой строке -1 как * возвращение * – diegoaguilar

+2

вам нужно сделать 'выход; 'сразу же, потому что назначение« результата »не прерывает функцию в Delphi – Igor

+0

Что делать, если я хочу * выйти * с результатом, установленным на -10 – diegoaguilar

Смежные вопросы