プログラムの醍醐味は、繰り返し作業を行える点です。
人間が繰り返し作業を行う場合、何回かに一度は間違いが発生したり、回数が増えてくるとしんどくなったり、嫌になったりメンタル面に影響が出てきます。
繰り返しプログラムを行なった場合、文句も言わず、確実に淡々と処理してくれます。
もちろん、複雑な計算ほど、人間が行うよりも格段に高速に処理出来ることから、結果的に効果が出ることは間違いありません。
というわけで、繰り返しの基本文「for文」をマスターしましょう。
構文
for文は、繰り返し行う関数ですが、基本とはいえ、繰り返し要素の記述の2パターンを抑えておけば、あとはほぼ応用で行えるので、どちらもしっかり使えるようにしましょう。
from - to形式
一番ポピュラーな記述方法です。
# sample
for(var i=0; i<100; i++){
console.log(i);
}
#response
> 0
> 1
> 2
...
# 構文
for(var [変数]=[from値]; [変数][演算(< ,<=,>,>=,==,===,!=,!==...)][to値]; [変数式]){
[繰り返し内容のプログラム]
}
# 解説
[変数] : for文の内部だけで有効にするために"var"宣言を忘れないようにしましょう。
[from値]: 開始の数値
[to値] : 終了の数値
[変数式] : 変数に足しこむ計算式を入力(通常はi++のようにインクリメントでいいが、変則的な場合はi=i*2のようにも書ける)
要素分解形式
連想配列などのkeyを取得しながら処理できます。
※この形式は配列を習得した後で覚える流れでも問題ないです。
# sample
var array = {"abc":"123","def":"456"};
for(var i in array){
console.log(i);
}
# response
> abc
> def
# 構文
for(var [変数] in [objectデータ]){
[繰り返し内容のプログラム]
}
# 解説
[変数] : for文の内部だけで有効にするために"var"宣言を忘れないようにしましょう。※objectのkey値が入ります
[objectデータ]]: 連想配列等
[to値] : 終了の数値
[変数式] : 変数に足しこむ計算式を入力(通常はi++のようにインクリメントでいいが、変則的な場合はi=i*2のようにも書ける)
初心者に見られるポイント
インデントの重要性
初心者の人はプログラムに一生懸命なため、インデントが疎かになる傾向が大きいようです。
エディタの機能でオートインデントがあった場合でも、別の箇所からソースコードをコピペして来たりしてインデントが崩れる事は大いにあるので、意識してインデントを整理する事をクセづけましょう。
構文と動作する内容は固定で覚える
「from-to形式」は、変数定義、繰り返し条件、繰り返し増加文、を一度に書くのが基本のため、初心者の方にはとても複雑に感じるそうです。
if文の()内とごっちゃになる人が多いようです。
できれば繰り返し自分で書いてみて習得してください。
括弧の必要性
for文の繰り返し行わせたい部分は中括弧を使って記述しますが、中括弧は省略もできます。
ただし、省略した場合は、インデントなどのルールや、処理する内容の範囲が曖昧になってしまうので、基本的には必ず記述する事をオススメしています。
人の手で行った方がいい事
for文はプログラムの醍醐味で人よりも早く正確に処理できるというメリットの反面、何か問題が起こった際に、停止をせずに最後まで問題のまま処理を進めてトラブルになったり、繰り返し途中で修正を行なって精度を上げるというような事はできません。
あたりまえですが、そういう機会学習のようなプログラムを書くことも可能ですが、あくまでそれもプログラミングです。
人は予測ができる事と、慣れてきて速度が早くなるという、今の時代では人でしかできない応用という事が一番のメリットでもあるので、コンピュータに任せっきりではなく、人ありきのプログラムという間隔を持つことが大事ですね。
魔法のようなプログラム
プログラムがわからない人はプログラムを魔法のように感じ、実際に何でもできるという間隔の人が多いようです。
しかし、プログラムは作っている人のプログラム能力を上回ることは間違いなくないので、そういったリテラシーの人と話す事も考慮しておきましょう。
他の繰り返し関数:while文など・・・
基本のfor文をマスターしておけばwhile文は応用として使えるので、あまり無理して使わなくてもプログラムは構築できます。
実際にwhile文は覚えなくてもいい関数なんですが、好んで使う他のプログラマーもいるため、そういった人のソースコードを受け継いだりレビューしたりするために覚えておくレベルでいいでしょう。
0 件のコメント:
コメントを投稿