| // run | |
| // Copyright 2009 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package main | |
| import "fmt" | |
| func main() { | |
| var i, k int | |
| var r string | |
| outer: | |
| for k = 0; k < 2; k++ { | |
| r += fmt.Sprintln("outer loop top k", k) | |
| if k != 0 { | |
| panic("k not zero") | |
| } // inner loop breaks this one every time | |
| for i = 0; i < 2; i++ { | |
| if i != 0 { | |
| panic("i not zero") | |
| } // loop breaks every time | |
| r += fmt.Sprintln("inner loop top i", i) | |
| if true { | |
| r += "do break\n" | |
| break outer | |
| } | |
| } | |
| } | |
| r += "broke\n" | |
| expect := `outer loop top k 0 | |
| inner loop top i 0 | |
| do break | |
| broke | |
| ` | |
| if r != expect { | |
| panic(r) | |
| } | |
| } |