首页 > 解决方案 > 计算给定数字中位数的基本代码,但它为什么有效?

问题描述

我写了这个函数,但是,虽然我很高兴它可以工作,但我似乎不明白为什么。

这个函数只是给我们传入的给定数字的位数。我的问题是:既然我只是将一个数字除以 10,那么 while 循环不应该是无限的吗?因为它总是大于0。例如:如果我传入250,它应该是:

然后

然后

然后

ETC...

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

标签: swiftlogic

解决方案


它不会是无限循环,因为您使用的是Int. 因此,除法没有其余部分,这意味着例如当您除以 时2/10,结果将是0


推荐阅读