Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(while): while文とdo-while文を追加 #91

Merged
merged 3 commits into from
Jul 18, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 67 additions & 5 deletions source/basic/loop/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,76 @@ author: azu
# ループと反復処理


プログラミングにおいて、同じ処理を繰り返すために同じコードを書くことはありません
ループや再帰呼び出し、イテレータなどを使い反復処理は抽象化されます
プログラミングにおいて、同じ処理を繰り返すために同じコードを必要はありません
ループや再帰呼び出し、イテレータなどを使い、反復処理は抽象化します
ここでは、もっとも基本的な反復処理となるループについてを学んでいきます。

## while文

while文は`条件式`が`true`であるならば、反復処理を行います。
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

最初から条件式を満たさない場合は実行されないというのを入れるべきかな


Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for文はC言語やJavaと同様の構文

これどこかで触れたい気もするけど、どこに書けばいいのかが分からない

```js
while (条件式)
実行する文;
```

while文の実行フローは次のようになります。
最初から`条件式`が`false`である場合は、何も実行せずwhile文は終了します。

1. `条件式` の評価結果が`true`なら処理を続け、`false`なら終了
2. `実行する文`を実行
3. ステップ1へ戻る

次のコードでは`x`の値が10未満であるなら、コンソールへ繰り返しログが出力されます。
また、`実行する文`にて、`x`の値を増やし`条件式`が`false`となるようにしています。

```js
var x = 0;
while (x < 10) {
console.log(x);
x += 1;
}
```

つまり、`実行する文`の中で`条件式`が`false`となるような処理を書かないと無限ループします。
JavaScriptにはより安全な反復処理の書き方があるため、while文は使う場面が限られています。

安易にwhile文を使うよりも、他の書き方で解決できないかを考えてからでも遅くはないでしょう。

## do-while文

do-while文はwhile文と殆ど同じですが実行順序が異なります。

```js
do {
実行する文;
} while (条件式);
```

do-while文の実行フローは次のようになります。

1. `実行する文`を実行
2. `条件式` の評価結果が`true`なら処理を続け、`false`なら終了
3. ステップ1へ戻る

while文とは異なり、かならず最初に`実行する文`を処理します。

そのため、次のコードのように最初から`条件式`を満たさない場合でも、
初回の`実行する文`が処理され、コンソールへ`1000`と出力されます。

```js
var x = 1000;
do {
console.log(x);// => 1000
} while (x < 10);
```

この仕組みを上手く利用し、ループの開始前とループ中の処理をまとめて書くことができます。
しかし、while文と同じく他の書き方で解決できないかを考えてからでも遅くはないでしょう。

## for文

for文はもっとも基本的な反復処理です。
JavaScriptのfor文はC言語やJavaと同様の構文になります。
for文は繰り返す範囲を指定した反復処理を書くことができます。

```js
for (初期化式; 条件式; 増分式)
Expand All @@ -26,7 +88,7 @@ for文の実行フローは次のようになります。
3. `実行する文` を実行
- 複数行である場合は、`{`と`}`で囲んだブロック文にする必要があります
4. `増分式` で変数を更新
5. ステップ2へ戻り繰り返す
5. ステップ2へ戻る

次のコードでは、for文を使い1から10の合計値を計算しています。

Expand Down