Как записать условие для отсутствия результата после перебора в цикле?
Необходимо найти перевод или выдать сообщение «нет в словаре». Перевод находит, но куда мне записать еще один else, чтобы выдавало 'Нет в словаре'. Вот кусочек кода.
write('Введите слово для поиска перевода: ');
readln(search);
for i:=1 to n do
begin
if x[i].rus=search then
writeln('Перевод: ',x[i].eng)
else if x[i].eng=search then
writeln('Перевод: ',x[i].rus)
end;
Ответы (2 шт):
Автор решения: Igor
→ Ссылка
write('Введите слово для поиска перевода: ');
readln(search);
for i := 1 to n do
begin
if x[i].rus = search then
begin
writeln('Перевод: ', x[i].eng);
break;
end
else if x[i].eng = search then
begin
writeln('Перевод: ', x[i].rus);
break;
end
else if i = n then
begin
writeln('Нет в словаре');
end;
end;
Автор решения: Stanislav Volodarskiy
→ Ссылка
Классическое решение для задачи - флаг found, который поднимается если найден перевод. После окончания цикла флаг проверяется и если он не поднят то выводится сообщение.
write('Введите слово для поиска перевода: ');
readln(search);
found := false;
for i:=1 to n do
begin
if x[i].rus = search then
begin
writeln('Перевод: ', x[i].eng);
found := true
end
else if x[i].eng = search then
begin
writeln('Перевод: ', x[i].rus);
found := true
end
end;
if not found then
writeln('Нет перевода')