'for index'与传统'for loop'之间的区别

时间:2016-02-05 15:40:31

标签: swift loops for-loop

我是Swift的新手,对编程很陌生。我不确定是不是因为它是凌晨2:34但是有人可以帮助我找出这两个循环之间的区别吗?

第一个导致我想要使用的值(正如Swift文档所解释的那样)是一个'传统的C循环',其中后者使用的是一个看起来像Swift首选'for index'循环(我个人喜欢)因为它对我来说更清楚),问题是这个循环返回每个数字而不是满足条件。

func findLargestPrimeFactor(number: Int) {
    for var i = 2; i < number; i += i {
        if number/i % 1 > 0 {

        } else {
            print(i);
        }
    }
}

findLargestPrimeFactor(13195);

以下是每个号码返回13195

func findLargestPrimeFactor(number: Int) {
    for i in 2...number {
        if number/i % 1 > 0 {

        } else {
            print(i);
        }
    }
}

findLargestPrimeFactor(13195);

1 个答案:

答案 0 :(得分:-1)

我已经意识到我的错误是多么愚蠢,首先我不知道为什么我在做i + = i,这根本没有意义。

另外,我的条件从未得到满足,因为我真的需要Float时将其声明为Int,因为我关心余数!

编辑:我已经再次更新了我的代码(考虑到每个人的反馈),我对此感觉好一些,并将继续致力于解决方案。

感谢大家的帮助!

更新了代码

func findLargestPrimeFactor(number: Int) {
    for i in 2...number {
        var n = Float(number)
        var count = Float(i)
            if n/count % 1 > 0 {
                print("not divisible")
            } else {
            print(i)
        }
    }
}

findLargestPrimeFactor(13195);