Тема: Массивы
Показать сообщение отдельно
  #26  
Старый 07.12.2012, 23:33
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Guneska
Простите, а почему вы использовали "break"? Вы закомментировали это как прерывание цикла, но почему Вы его здесь использовали? Зачем?
Процедуру "Break" можно использовать только для прерывания цикла и ни для чего больше. В данном случае внешний цикл (по переменной i) проходится по всем символам строки, а внутренний цикл (по переменной j) ищет очередной символ в строке цифр в первом случае и в строке латинских символов во втором случае, если символ найден он добавляется в соответствующую результирующую строку и внутренний цикл прерывается так как символ найден и нет смысла дальше его искать.
По моему объяснение получилось более запутанным, чем сам исходный код.

Кстати код очень не оптимальный и я не могу на него спокойно смотреть. Кроме того он не будет работать с прописными латинскими буквами, а по условию должен.
Тот "кусок" программы в котором циклы можно сократить как минимум к такому виду, с единственным циклом:
Код:
  for i := 1 to len do
  begin
    case str[i] of
      '0'..'9': res1 := res1 + str[i];
      'a'..'z', 'A'..'Z': res2 := res2 + str[i];
    end;
  end;
Ответить с цитированием