見出し画像

【高校情報Ⅰ】JavaScriptプログラミング 超入門講座 第6話 「繰返し処理/for/while」

◆◆はじめに◆◆


高等学校情報Ⅰに完全準拠させた、JavaScript入門講座の6回目です。


今回は「繰り返し構文のfor/while」についてです。forとwhile一気に説明しています。

教員研修用教材には、JavaScriptの基礎の解説がほとんど無いので、教員の方にも参考にして頂けると幸いです。

◆◆動画解説◆◆

◆◆文字おこし◆◆

今日はJavaScriptの繰り返し構文である。for文とwhile文について学んでいこう。

<!DOCTYPE html>
<html lang="ja">
<head>
	<meta charset="UTF-8">
	<title>MyPage</title>
</head>
<body>
	<script>
           //1から4までを出力
			document.write(1);
			document.write("<br>");
           document.write(2);
			document.write("<br>");
           document.write(3);
			document.write("<br>");
           document.write(4);
			document.write("<br>");
		document.write("おわり");
	</script>
</body>
</html>

例えば1~4までの数字を順番に出力したいとき。
今まで習ったやり方だと、document.write で1から4まで順番に書くしかないよね。

繰り返し構文を使うことで、たった数行のプログラムで何百、何万と出力することができる。

まず、for文だけど こんな風に記述したものを一度、実行してみよう。

<!DOCTYPE html>
<html lang="ja">
<head>
	<meta charset="UTF-8">
	<title>MyPage</title>
</head>
<body>
	<script>
		for(var i = 1; i <= 4; i = i + 1){
			document.write(i);
			document.write("<br>");
		}
		document.write("おわり");
	</script>
</body>
</html>


1から4まで出力されたね。

for文について詳しく説明するね。

画像1


まず for(の中に 変数の定義 セミコロンで区切って 繰り返しを継続するための条件式 セミコロンで区切って 変数の更新処理を記述して 初めの丸カッコを閉じる。

波括弧の中に 繰り返したい処理を書く。

注意するのは波括弧の最後には、終わりを意味するセミコロンは不要。

さっきの1から4まで繰り返した処理で見ていこう。

画像2

ます、var i = 1 で変数iを定義して初期値として1を代入する。
つぎにルールを継続する条件は i <= 4 とする。iが4以下の間ループを継続する。逆に言えば4を超えたらループを抜ける。

変数iを1ずつ増やしたいから i = i + 1 と記述する 
ここでセミコロンは不要だから気を付けよう。
これは、今の変数iの値に1プラスした値をiに代入しなおすという意味。

そしてdocument.writeでiの値を表示する。改行が無いと区切りが分からないから改行も記述する

実行した場合の処理を追っていこう。

画像3


まず変数iに1が初期値として代入される。

4以下なので判定が真(True)となり、波括弧の中に入る。
そして iの値、つまり1を表示して、ループの初めに戻る。

iに1をプラスして2をiに代入する。
2は4以下なので判定が真(True)となり、波括弧の中に入る。
そして iの値である2を表示する

ループの初めに戻って
iに1をプラスして3をiに代入する。
3は4以下なので判定が真(True)となり、波括弧の中に入る。
そして iの値である3を表示する

ループの初めに戻って
iに1をプラスして4をiに代入する。
4は4以下なので判定が真(True)となり、波括弧の中に入る。
そして iの値である4を表示する


ループの初めに戻って
iに1をプラスして5をiに代入する。
5は4以下ではないので、偽 Falseとなり、ループの処理を抜ける。

---

画像4


 i = i +1 はさっき話したように変数iの中身の値に1をプラスして、iに代入するという意味だけど、これは書き方を簡略化できる。

i += 1 と書いても同じ処理になる。 +=は離さないように気を付けよう。
2ずつ増やしたい場合は、i = i + 2 やi += 2 ともかける。
1ずつ増やす場合はさらに簡略化ができて
i++ と書いても同じ処理になる。

--

画像5


今は、iを1ずつプラスしていったけど1ずつマイナスすることもできる
i = i – 1 は変数iの中身の値を1マイナスしてiに代入するという意味なる。
i -= 1 と書いても同じ処理になる。
さらに簡略化ができて
i-- と書いても同じ処理になる。

4から1にカウントダウンするパターンで処理を組んでいこう。

iの初期値は4 継続条件はiが1以上の間 (i >= 1) として 更新処理は i--
となる。
波括弧の中の処理はさっきと同じ。

実行してみよう、ちゃんと4から1までカウントダウンされてループを抜けたね。

------------------

今度は、もう一つの繰り返し構文である、while文についてやっていこう。

画像6

whileの丸カッコの中に、継続の条件を書き、その後の波括弧内に処理を記述する。
波括弧の後にはセミコロンは不要だから気を付けよう。

さっきのforとの違いは 変数宣言部分が無いのと、変数の値を増やしたり減らしたりする処理が無い。
変数の値を変更する処理を、波括弧内に明記しないと、永久にループから抜けないことになる。このことを無限ループという。

さっきfor文でやったように1から4までカウントアップする処理をwhile文で試していこう。

<!DOCTYPE html>
<html lang="ja">
<head>
	<meta charset="UTF-8">
	<title>MyPage</title>
</head>
<body>
	<script>
		var i = 1;
		//1から4までカウントアップ
		while(i <= 4){
			document.write(i);
			document.write("<br>");
			i++;
		}
		document.write("おわり");
	</script>
</body>
</html>


まず、変数 i を 初期値 1として、while文より前に宣言する。
条件式は iが4以下の間続けたいから i <= 4 でfor文の時と同じ。
iの値を出力して、
その後に変数iの値に プラス1した値をiに代入しなおす。


実行してみよう。
for文と同じように1から4までカウントアップされたね。

---------
ループは入れ子式にできる

例えば親ループが
さっきのfor文で1から4までループするごとに
 中の子ループがAという文字を2回出力する処理を作成しよう

<!DOCTYPE html>
<html lang="ja">
<head>
	<meta charset="UTF-8">
	<title>MyPage</title>
</head>
<body>
	<script>
		for(var i = 1; i <= 4; i++){
			document.write(i);
			document.write("<br>");

			for(var j = 1; j <= 2; j++){
				document.write("A");
				document.write("<br>");
			}
		}
		document.write("おわり");
	</script>
</body>
</html>

 親のfor文の中に もう一つfor文を入れ込む
 変数名は被らないように jを使おう
 初期値を1として 2回繰り返すから j <=2 として j++とする
 波括弧の中はdocument.writeでAと記述する。

実行してみよう
親ループが1回 回るごとにAが2回出力されているから、子のループが実行したのが分かるね。

今日はここまで、次回は配列について学んでいこう。



この記事が気に入ったらサポートをしてみませんか?