for文 javascript

for文 javascript

投稿日: 2024年12月05日

Tips
学習振り返り
要約
  • for文において、初期化式とループ内の変数は異なる役割を持つべきである。
  • 同じ変数名を使用すると初期化した値が上書きされ、正しい計算が行われなくなる。
  • 変数の競合を防ぎ、コードの意図を明確にするために、役割を分けることが重要。

はじめに

すごく初歩的な内容ですが、自分の復習になると思って笑
for文について少し疑問に思ったことがあったので書いてみました!😎

for文の条件式

構文

for(初期化式;  ループ継続条件;  増減式)

for文書いててなぜだろうと思ったことがありました!

function combi(n, r) {
let p = 1;
for(let i = 1; i <= r; i++) {
  p = p * (n - i + 1) / i;
}
return p;
}

let n = 10;
let r = 3;
let result = combi(n, r);
console.log(result);

なぜ変数pで初期値設定しているのに、ループ内で新たに変数iで定義しないといけないの?
同じ変数pではダメなの?
こんな疑問を持った人、もしかしたらいたと思うですよ!!😳
それにはちゃんと理由があるんです!

なぜ同じじゃダメなの?

以下、同じ変数pに変えたコードになります!
どんな結果になるかわかりますか?
結果は、1と出力されます!
原因は、同じ変数pをループ内で再定義すると、最初に定義した変数pが上書きされてしまうからです。ループ内に同じpをカウンタとして使っているため、計算が正しく行われなくなります!

function combi(n, r) {
let p = 1;
for(let p = 1; p <= r; p++) {
  p = p * (n - p + 1) / p;
}
return p;
}

let n = 10;
let r = 3;
let result = combi(n, r);
console.log(result);

それぞれの役割

まず、この変数pは結果を保持するために使われる変数になります。

function combi(n, r) {
let p = 1;

そして、ループ内にある変数iは、ループを進行管理し、正しい計算が行われるための変数となります。

for(let i = 1; i <= r; i++) {
  p = p * (n - i + 1) / i;
}

なので、わざわざこうして役割を分けているのは、それぞれの異なる変数を使うことで
変数の競合を防ぎ、コードを意図を明確にするためです!

おわり

ちゃんと役割を理解すると、少しずつコードが読めてきて(理解できる)て嬉しくなりますよね!
僕自身も全然読めていなですが、コツコツやっていきましょう!!

シェア!

Threads
Loading...
記事一覧に戻る
Threads
0