| // 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) |
| } |
| } |