почему в цикле for не нужен сабскрипт count?

max mas

Подскажите плз, почему в одном случае в цикле for для массива сабскрипт count нужен, а в другом нет?

Ситуация следующая, учебная задача. Условия такие - есть два массива - количество дней в месяцах года и названия месяцев. Используя цикл for in нужно вывести на печать одновременно и название месяца, и количество дней в нем

Первая задача

let dayMonth = [31, 28, 31, 30, 31, 30, 31,31, 30,31,30,31]

let nameMonth = ["январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь"]

for value in 0..<nameMonth.count
{
    print("\(dayMonth[value]) days in \(nameMonth[value])")

}

Напечатает

31 days in январь
28 days in февраль
31 days in март
30 days in апрель
31 days in май
30 days in июнь
31 days in июль
31 days in август
30 days in сентябрь
31 days in октябрь
30 days in ноябрь
31 days in декабрь

Задача 2. Сделать то же самое, только использовать один массив из тюплов (название месяца и количество дней)

Объявляеем массив из тюплов

var tupleMonths = [(nameMonth: String, dayMonth: Int)]()

Через цикл и сабскрипт append массив инициализируется значениями из двух предыдущих массивов

for i in 0..<12{
    tupleMonths.append((nameMonth[i], dayMonth[i]))
}

Затем выполняется сама команда вывода на печать

for i in tupleMonths{
    print(i.nameMonth, "has", i.dayMonth, "days")
}

Напечатает

январь has 31 days
февраль has 28 days
март has 31 days
апрель has 30 days
май has 31 days
июнь has 30 days
июль has 31 days
август has 31 days
сентябрь has 30 days
октябрь has 31 days
ноябрь has 30 days
декабрь has 31 days

При сравнении двух решений обращает на себя внимание разница в описании условий цикла. В первом случае используется сабскрипт count, а во втором нет.

Пример 1

for value in 0..<nameMonth.count

Пример 2

for i in tupleMonths

Если во втором случае count можно не использовать, то почему это нельзя сделать и в первом случае? Ведь по идее и в том, и в другом случае структура начала цикла одинакова - задается итератор и массив значений. Почему же тогда в первом случае надо обязательно считать количество значений, а во втором это делать не обязательно?

max mas 6 месяцев назадСпасибо 0
1 чел.