0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Go言語を学んでみる #3

Last updated at Posted at 2023-09-15

for文等の繰り返し処理、分岐処理のあたりのまとめ。

For

for i := 0; i < 10; i++ {
	sum += i
}

値の初期化・条件式・後処理の部分は割と他の書き方と一緒。
違いはカッコが無いくらい?

func main() {
	sum := 1
	for ; sum < 1000; {
		sum += sum
	}
	fmt.Println(sum)
}

条件式以外は任意で、省略することも可能。

func main() {
	sum := 1
	for sum < 1000 {
		sum += sum
	}
	fmt.Println(sum)
}

セミコロンまで省略できちゃう。便利。
これでC言語にあるwhileと同じような処理ができる。

package main

func main() {
	for {
	}
}

こうすれば無限ループも作れちゃう。らくちん。

If

func sqrt(x float64) string {
	if x < 0 {
		return sqrt(-x) + "i"
	}
	return fmt.Sprint(math.Sqrt(x))
}

if文もだいたい同じ。条件式のカッコは必要なくて、実行式の中かっこは必要。

func pow(x, n, lim float64) float64 {
	if v := math.Pow(x, n); v < lim {
		return v
	}
	return lim
}

if文の中でしか使えない、簡単なステートメントを定義することもできる。
スコープ外では使用不可。if文の中で使われている変数が、スコープ外で使えないってのと同じことやね。

func pow(x, n, lim float64) float64 {
	if v := math.Pow(x, n); v < lim {
		return v
	} else {
		fmt.Printf("%g >= %g\n", v, lim)
	}
	// can't use v here, though
	return lim
}

else文の中でも使えちゃいます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?