The Fibonacci series is a series where the next term is the sum of pervious two terms. The first two terms of the Fibonacci sequence is 0 followed by 1.

The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21, ...

## Example 1: Display Fibonacci series using for loop

```
fun main(args: Array<String>) {
val n = 10
var t1 = 0
var t2 = 1
print("First $n terms: ")
for (i in 1..n) {
print("$t1 + ")
val sum = t1 + t2
t1 = t2
t2 = sum
}
}
```

When you run the program, the output will be:

First 10 terms: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 +

In the above program, first (`t1`) and second (`t2`) terms are initialized to first two terms of the Fibonacci series 0 and 1 respectively.

Unlike Java, we've used *ranges* and *in* operator to iterate till `n` (number of terms) displaying the sum of previous two terms stored in variable `t1`.

Here's the equivalent Java code: Java Program to Display Fibonacci Series.

You can also generate fibonacci series using a while loop in Kotlin.

## Example 2: Display Fibonacci series using while loop

```
fun main(args: Array<String>) {
var i = 1
val n = 10
var t1 = 0
var t2 = 1
print("First $n terms: ")
while (i <= n) {
print("$t1 + ")
val sum = t1 + t2
t1 = t2
t2 = sum
i++
}
}
```

The output is same as the above program.

In the above program, unlike a for loop, we have to increment the value of `i` inside the body of the loop.

Though both programs are technically correct, it is better to use for loop in this case. It's because the number of iteration (from 1 to `n`) is known.

## Example 3: Display Fibonacci series upto a given number (instead of terms)

```
fun main(args: Array<String>) {
val n = 100
var t1 = 0
var t2 = 1
print("Upto $n: ")
while (t1 <= n) {
print("$t1 + ")
val sum = t1 + t2
t1 = t2
t2 = sum
}
}
```

When you run the program, the output will be:

Upto 100: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55 + 89 +

Instead of displaying the series upto a specific number, this program displays it until a given number (100).

For this, we just need to compare the sum of last two numbers (`t1`) with `n`.

If `t1` is less than or equals to `n`, print `t1`. Else, we're finished displaying all terms.