「Go/条件分岐と繰り返し」の版間の差分

削除された内容 追加された内容
Go 2020年6月12日 (金) 09:59‎ から条件分岐・繰り返しについて引用。こちらに移動。
 
編集の要約なし
タグ: 2017年版ソースエディター
46 行
 
 
論理式の中で「○○は△△と等しい」の意味で等号(イコール記号)を使う場合は、C言語と同様に、 <code>==</code> というふうに等号を2つ続けて使います。
 
論理式の中で「○○は△△と等しい」の意味で等号(イコール記号)を使う場合は、C言語と同様に、 <code>==</code> というふうに等号を2つ続けて使います。
 
条件「〜でなければ」の else を使う場合、下記のように
86 行
 
 
=== 繰り返し - for文 ===
Go言語では、For文が繰り返し処理をする唯一の構文となっている。For文には2種類の使い方がある。CやC++などのように
for文の書式は、具体例を見たほうが早いので、下記に具体例を書くと
<syntaxhighlight lang="go">for i := 0;i < n;i++{
 
// 繰り返したい処理
;例
}</syntaxhighlight>
<pre>
とかく方法と、Pythonのように
for i := 1 ; i <= 5 ; i = i+1 {
// 繰り返したい処理
// fmt.Printf("%dかける2= %d です\n", i, i*2 )
}
</pre>
 
のようになる。
 
Go言語のfor文では、forの後ろに丸カッコを'''つけてはいけない'''。もし丸カッコをつけてもGo言語ではエラーになり、実行できない。
 
 
また、初期値の
 
i := 1 ;
 
の部分は、この書き方、つまり
 
変数 := 初期値
 
の書き方しか、受け付けない。
 
ダメな例だが、
for var i int = 1; 以下略 // エラーになる
とか書いてもエラーになり、実行できない。
 
 
;コード例
<syntaxhighlight lang="go">
for i := range slice{
package main
//iを使った繰り返し処理
</syntaxhighlight>
という、スライスや配列、mapなどから一つずつ取り出していく方法がある。まずは前者の方の使い方を説明する。
 
<syntaxhighlight lang="go">for 初期化;条件;ポスト{
import "fmt"
//繰り返す処理
}</syntaxhighlight>
 
''初期化''及び''ポスト''はステートメント(省略変数宣言、インクリメント文、代入、関数呼び出し)でなくてはならない。また、条件はブーリアン式 (trueかfalseを返す文式)でなくてはならない。For文は次のように実行される。
var hensu = 7;
 
# 初期化
func main() {
# 繰り返す
# 処理ポスト
for i := 1 ; i <= 5 ; i = i+1 {
# 条件が正 (つまり i > nなどといった式が正しい)ならばもう一度 2.に戻る。偽なら終了する
fmt.Printf("%dかける2= %d です\n", i, i*2 )
}
</syntaxhighlight>
 
また、Break文が中にあれば、Forから抜け出す。
 
;実行結果
<pre>
1かける2= 2 です
2かける2= 4 です
3かける2= 6 です
4かける2= 8 です
5かける2= 10 です
</pre>