title: looping with range in Go
body: <p>Correct me if I'm wrong, there are only 3 types of loops in Go.</p>
  
  <p>Type1 (The most basic type, with a single condition):</p>
  
  <p><code>for i &lt;= 3 {...}</code></p>
  
  <p>Type2 (Classical for-loop)</p>
  
  <p><code>for j := 7; j &lt;= 9; j++ {...}</code></p>
  
  <p>Type3 (infinite loop rely on break)</p>
  
  <p><code>for {...break}</code></p>
  
  <p>Then I come across this for loop that sums the value from array </p>
  
  <pre><code>nums := []int{2, 3, 4}
  sum := 0
  for _, num := range nums {
      sum += num
  }
  fmt.Println("sum:", sum)//"sum: 9"
  </code></pre>
  
  <p>Is the above <code>for-loop</code> to be considered <strong>Type1</strong> where it automatically applies <code>&lt;=</code> and range of nums as max value? Can I in any way change the value? maybe I need two extra loops? Can we apply something like <code>range + 2</code>?</p>