blob: 36ad15709b1ff0348822437a35e72fc9af1b6c54 [file] [log] [blame]
Rob Pike126150d2008-06-06 13:28:03 -07001// $G $F.go && $L $F.$A && ./$A.out
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
7package main
8
9func assertequal(is, shouldbe int, msg string) {
10 if is != shouldbe {
Rob Pike4f61fc92010-09-04 10:36:13 +100011 print("assertion fail", msg, "\n")
12 panic(1)
Rob Pike126150d2008-06-06 13:28:03 -070013 }
14}
15
16func main() {
Rob Pike4f61fc92010-09-04 10:36:13 +100017 var i, sum int
Rob Pike126150d2008-06-06 13:28:03 -070018
Rob Pike4f61fc92010-09-04 10:36:13 +100019 i = 0
Rob Pike126150d2008-06-06 13:28:03 -070020 for {
Rob Pike4f61fc92010-09-04 10:36:13 +100021 i = i + 1
Rob Pike126150d2008-06-06 13:28:03 -070022 if i > 5 {
Rob Pike4f61fc92010-09-04 10:36:13 +100023 break
Rob Pike126150d2008-06-06 13:28:03 -070024 }
25 }
Rob Pike4f61fc92010-09-04 10:36:13 +100026 assertequal(i, 6, "break")
Rob Pike126150d2008-06-06 13:28:03 -070027
Rob Pike4f61fc92010-09-04 10:36:13 +100028 sum = 0
Rob Pike126150d2008-06-06 13:28:03 -070029 for i := 0; i <= 10; i++ {
Rob Pike4f61fc92010-09-04 10:36:13 +100030 sum = sum + i
Rob Pike126150d2008-06-06 13:28:03 -070031 }
Rob Pike4f61fc92010-09-04 10:36:13 +100032 assertequal(sum, 55, "all three")
Rob Pike126150d2008-06-06 13:28:03 -070033
Rob Pike4f61fc92010-09-04 10:36:13 +100034 sum = 0
Rob Pike126150d2008-06-06 13:28:03 -070035 for i := 0; i <= 10; {
Rob Pike4f61fc92010-09-04 10:36:13 +100036 sum = sum + i
37 i++
Rob Pike126150d2008-06-06 13:28:03 -070038 }
Rob Pike4f61fc92010-09-04 10:36:13 +100039 assertequal(sum, 55, "only two")
Rob Pike126150d2008-06-06 13:28:03 -070040
Rob Pike4f61fc92010-09-04 10:36:13 +100041 sum = 0
Rob Pike126150d2008-06-06 13:28:03 -070042 for sum < 100 {
Rob Pike4f61fc92010-09-04 10:36:13 +100043 sum = sum + 9
Rob Pike126150d2008-06-06 13:28:03 -070044 }
Rob Pike4f61fc92010-09-04 10:36:13 +100045 assertequal(sum, 99 + 9, "only one")
Rob Pike126150d2008-06-06 13:28:03 -070046
Rob Pike4f61fc92010-09-04 10:36:13 +100047 sum = 0
Rob Pike126150d2008-06-06 13:28:03 -070048 for i := 0; i <= 10; i++ {
49 if i % 2 == 0 {
Rob Pike4f61fc92010-09-04 10:36:13 +100050 continue
Rob Pike126150d2008-06-06 13:28:03 -070051 }
Rob Pike4f61fc92010-09-04 10:36:13 +100052 sum = sum + i
Rob Pike126150d2008-06-06 13:28:03 -070053 }
Rob Pike4f61fc92010-09-04 10:36:13 +100054 assertequal(sum, 1+3+5+7+9, "continue")
Rob Pike126150d2008-06-06 13:28:03 -070055
56}