Home | History | Annotate | Download | only in test
      1 // run
      2 
      3 // Copyright 2009 The Go Authors. All rights reserved.
      4 // Use of this source code is governed by a BSD-style
      5 // license that can be found in the LICENSE file.
      6 
      7 // Test for loops.
      8 
      9 package main
     10 
     11 func assertequal(is, shouldbe int, msg string) {
     12 	if is != shouldbe {
     13 		print("assertion fail", msg, "\n")
     14 		panic(1)
     15 	}
     16 }
     17 
     18 func main() {
     19 	var i, sum int
     20 
     21 	i = 0
     22 	for {
     23 		i = i + 1
     24 		if i > 5 {
     25 			break
     26 		}
     27 	}
     28 	assertequal(i, 6, "break")
     29 
     30 	sum = 0
     31 	for i := 0; i <= 10; i++ {
     32 		sum = sum + i
     33 	}
     34 	assertequal(sum, 55, "all three")
     35 
     36 	sum = 0
     37 	for i := 0; i <= 10; {
     38 		sum = sum + i
     39 		i++
     40 	}
     41 	assertequal(sum, 55, "only two")
     42 
     43 	sum = 0
     44 	for sum < 100 {
     45 		sum = sum + 9
     46 	}
     47 	assertequal(sum, 99 + 9, "only one")
     48 
     49 	sum = 0
     50 	for i := 0; i <= 10; i++ {
     51 		if i % 2 == 0 {
     52 			continue
     53 		}
     54 		sum = sum + i
     55 	}
     56 	assertequal(sum, 1+3+5+7+9, "continue")
     57 
     58 }
     59