Основной код, который подсчитывает количество цифр в данном номере, но почему он работает? - PullRequest
0 голосов
/ 24 мая 2019

Я написал эту функцию, но, хотя я счастлив, что она работает, я не понимаю, почему.

Эта функция просто дает нам количество цифр в данном числе, переданное в ней. Мой вопрос: Поскольку я делю число только на 10, не должен ли цикл while быть бесконечным? Поскольку оно всегда будет больше 0. Пример: если я передам 250, оно должно быть:

  • 25; counter = 1

тогда

  • 2,5; counter = 2

тогда

  • 0,25; counter = 3

1021 * тогда *

и т.д ...

func count(_ num: Int) -> Int {
    var counter = 0
    var number = num
    while number > 0 {
        number = number / 10
        counter += 1
    }
    return counter
}

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Если вы делаете это в Swift, почему бы вам просто не написать:

let number = 250
let str = String(number)
print(str.count) //3

После всего, что вы хотите count the number of digits в данном Int value верно?

0 голосов
/ 24 мая 2019

Это не будет бесконечный цикл, потому что вы используете Int.Следовательно, нет деления, что означает, что при делении, например, 2/10, результат будет 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...