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 3 years have passed since last update.

javascriptの基礎(whileとfor)

Last updated at Posted at 2020-09-10

はじめに

以下のサイトを使用し、javascriptを学習しています。
現代の JavaScript チュートリアル

以下、備忘録として残します。

用語

イテレーション

  • ループ本体1回の実行のこと

whileとfor

whileループ

  • condition が true の間、ループの本体の code が実行される
  • 下のループは i < 3 の間、i を出力する
let i = 0;
while (i < 3) { // 0, 次に 1, 次に 2 を表示
  alert( i );
  i++;
}
//ループは3回イテレーション
//i++がない場合永遠に繰り返される

forループ

  • 下のループは 0 から 3 までalertを実行する
for (let i = 0; i < 3; i++) { // 0, 次に 1, 次に 2 を表示
  alert(i);
}

forループの動き

  • begin (i = 0) ループに入ると1度実行される
  • condition (i < 3) すべてのループのイテレーションの前にチェックされる、もしも false の場合ループを停止
  • step (i++) 各イテレーションで、条件チェックの前に本体の後に実行される
  • body (alert(i)) 条件が真の間繰り返し実行される

ループ処理のアルゴリズム(とても分かりやすい考え方)

begin を実行
 (if condition  body を実行し step を実行)
 (if condition  body を実行し step を実行)
 (if condition  body を実行し step を実行)

インライン変数宣言

  • ループの中だけで使える変数
for (let i = 0; i < 3; i++) {
  alert(i); // 0, 1, 2
}
>
alert(i); // エラー, そのような変数はありません
  • ループの外で変数宣言していれば、ループ外からでも使える
let i = 0;
>
for (i = 0; i < 3; i++) { // 既存の変数を使用
  alert(i); // 0, 1, 2
}
>
alert(i); // 3, ループの外で宣言されているので使える

省略もできる、書き方

  • beginを省略
let i = 0; // すでに i を宣言し代入済み
>
for (; i < 3; i++) { // "begin" 不要
  alert( i ); // 0, 1, 2
}
  • stepを省略
let i = 0;
>
for (; i < 3;) {
  alert( i++ );
}

break(ループを終わらせる)

通常ループは条件が偽になると停止するが、breakディレクティブでループから出ることを強制できる

let sum = 0;
>
while (true) {
  let value = +prompt("Enter a number", '');
  if (!value) break; // 
  sum += value;
}
>
alert( 'Sum: ' + sum );
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?