Go言語について質問です。


Eachのループを途中でbreakさせたいのですが、そのような仕組みは用意されていますでしょうか。
JavaScriptでは「return false」とすればbreakできますが、golangでも同様のことができないかと考えています。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2014/09/26 01:44:15
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:yukkuri_sinai No.1

回答回数2ベストアンサー獲得回数0

ポイント100pt

Eachというのはrangeを使ったforのことでしょうか? それならばbreakとするだけでループを抜けることができますが…
Eachというのがrangeを使ったforだとするとこのようになります

package main

import "fmt"

func main() {
	array := [...]int{1, 2, 3, 4, 5}
	for num, _ := range array {
		if num == 3 {
			break
		}
		fmt.Println(num)
	}
}
id:hogesuke_1

ありがとうございました。

2014/09/26 01:43:51
id:gizmo5 No.2

回答回数504ベストアンサー獲得回数141

ポイント100pt

他の言語のように関数から脱出する return や、制御構造から脱出する break は、Go言語でもサポートされています。

http://golang.jp/effective_go#control-structures

下はGo言語における単純なifステートメントです。

if x > 0 {
    return y
}

http://golangtutorials.blogspot.jp/2011/06/control-structures-go-for-loop-break.html

package main

import "fmt"

func main() {
    i := 0
    for { //since there are no checks, this is an infinite loop
        if i >= 3 { break } //break out of this for loop when this condition is met
        fmt.Println("Value of i is:", i)
        i++;
    }
    fmt.Println("A statement just after for loop.") 
}
id:hogesuke_1

ありがとうございました。

2014/09/26 01:43:59

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません