blob: 05188a47232633c34d8593d3e3f6138737395e35 [file] [log] [blame]
Rob Pikeab34d152008-06-06 14:27:34 -07001// $G $D/$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 Pikebc2f5f12008-08-11 22:07:49 -070011 print("assertion fail" + msg + "\n");
12 panic(1);
Rob Pikeab34d152008-06-06 14:27:34 -070013 }
14}
15
16func main() {
17 var i, sum int;
18
19 i = 0;
20 for {
21 i = i + 1;
22 if i > 5 {
23 break;
24 }
25 }
26 assertequal(i, 6, "break");
27
28 sum = 0;
29 for i := 0; i <= 10; i++ {
30 sum = sum + i;
31 }
32 assertequal(sum, 55, "all three");
33
34 sum = 0;
35 for i := 0; i <= 10; {
36 sum = sum + i;
37 i++;
38 }
39 assertequal(sum, 55, "only two");
40
41 sum = 0;
42 for sum < 100 {
43 sum = sum + 9;
44 }
45 assertequal(sum, 99 + 9, "only one");
46
47 sum = 0;
48 for i := 0; i <= 10; i++ {
49 if i % 2 == 0 {
50 continue;
51 }
52 sum = sum + i;
53 }
54 assertequal(sum, 1+3+5+7+9, "continue");
55
56}