5

How can I loop over an array of strings on v programming language?
For example: langs := ['python', 'java', 'javascript']

MosheZada
  • 2,189
  • 1
  • 14
  • 17

2 Answers2

8

Method 1: For loop with index

langs := ['python', 'java', 'javascript']

for i, lang in langs {
    println('$i) $lang')
}                             

Method 1 Output:

0) python
1) java
2) javascript

Try method 1 on vlang's playground here

Method 2: For loop without index

langs := ['python', 'java', 'javascript']

for lang in langs {
    println(lang)
}      

Method 2 Output:

python
java
javascript

Try method 2 on vlang's playground here

Method 3: While loop style iteration using for in V Lang You can do this too. Following loop is similar to while loop in other languages.

mut num := 0
langs := ['python', 'java', 'javascript']

for{
    if num < langs.len {
        println(langs[num])
    }
    else{
        break
    }
    num++
}

Method 3 Output:

python
java
javascript

Try method 3 on vlang's playground here

Method 4: Looping over elements of an array by accessing its index

langs := ['python', 'java', 'javascript']

mut i := 0
for i < langs.len {
    println(langs[i])
    i++
}

Method 4 Output:

python
java
javascript

Try method 4 on V lang's playground here

Method 5: Traditional C-Style looping

As suggested by @Astariul in the comments

langs := ['python', 'java', 'javascript']

for i := 0; i < langs.len; i++ {
    println(langs[i])
}

Method 5 Output:

python
java
javascript

Try method 5 on V lang's playground here

You can checkout this playlist for more interesting vlang tutorials

navule
  • 3,212
  • 2
  • 36
  • 54
  • 1
    Note : you can also use a C-style loop (looping over the indexes of the array) – Astariul Aug 20 '19 at 00:39
  • 1
    @Astariul, added it as method 4. Hope that is what you're suggesting for – navule Aug 20 '19 at 03:50
  • I was more thinking of the loop where i is declared inside the loop (`for i := 0; i < langs.len; i++`), as described in the [documentation of V](https://vlang.io/docs#for). But this one works too ^^ Thanks for keeping the answer updated :) – Astariul Aug 20 '19 at 04:20
  • Nicer then is: for i in 0..langs.len – PePa Feb 08 '23 at 16:00
1

V has only one looping construct: for.
In order to loop over the array langs, you need to use the for loop.

langs := ['python', 'java', 'javascript']
for lang in langs {
    println(lang)
}

The for value in loop is used for going through elements of an array. If an index is required, an alternative form for index, value in can be used.

MosheZada
  • 2,189
  • 1
  • 14
  • 17