# Kotlin 程序：计算自然数之和

> 原文： [https://www.programiz.com/kotlin-programming/examples/sum-natural-numbers](https://www.programiz.com/kotlin-programming/examples/sum-natural-numbers)

#### 在此程序中，您将学习在 Kotlin 中使用`for`循环和`while`循环来计算自然数之和。 您还将看到范围如何有助于解决问题。

正数 1、2、3... 称为自然数，其和是从 1 到给定数字的所有数字的结果。

对于 n，自然数之和为：

```kt
1 + 2 + 3 + ... + n
```

## 示例 1：`for`循环和自然数之和

```kt
fun main(args: Array<String>) {

    val num = 100
    var sum = 0

    for (i in 1..num) {
        // sum = sum+i;
        sum += i
    }

    println("Sum = $sum")
}
```

运行该程序时，输出为：

```kt
Sum = 5050
```

上面的程序从 1 循环到给定的`num`（100），并将所有数字加到变量`sum`上。

与 Java 不同，在 Kotlin 中，您可以使用*范围运算符*（`1..num`）创建*从 1 到`num`之间的数字范围*。

以下是等效的 Java 代码：[计算自然数总和的 Java 程序](/java-programming/examples/sum-natural-numbers)

* * *

您还可以使用`while`循环解决此问题，如下所示：

## 示例 2：`while`循环和自然数之和

```kt
fun main(args: Array<String>) {

    val num = 50
    var i = 1
    var sum = 0

    while (i <= num) {
        sum += i
        i++
    }

    println("Sum = $sum")
}
```

运行该程序时，输出为：

```kt
Sum = 1275
```

在上面的程序中，与`for`循环不同，我们必须在循环体内增加`i`的值。

尽管两个程序在技术上都是正确的，但在这种情况下最好使用`for`循环。 这是因为迭代次数（最多`num`）是已知的。

访问此页面以了解*如何使用递归*来查找自然数之和。