А тут и не в типах дело

просто цикл пролетает по ВСЕМ элементам, например в середине встретил нужный элемент, записал значение нужное, полетел дальше, а уже следующий элемент не подходит, поэтому значение записывается в 3

там Exit стоит если ты не заметил
ЗЫ а код то работает хоть