// Copyright 2023 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" "os" ) func main() { x := f(60) fmt.Println(x) if x != 54 { os.Exit(11) } } var escape *int func f(i int) int { a := 0 outer: for { switch { case i > 55: i-- continue case i == 55: for j := i; j != 1; j = j / 2 { a++ if j == 4 { escape = &j i-- continue outer } if j&1 == 1 { j = 2 * (3*j + 1) } } return a case i < 55: return i } } }