これ何て呼びますか

javascript

function generateCalendarPulldown(){
//var nowDate = new Date(today);
var year = Number(todayArr[0]);
var mon = Number(todayArr[1]);

var $selectYear = $('#dialog_panel .dialog_body ul li select#year');
var $selectMonth = $('#dialog_panel .dialog_body ul li select#month');

$selectYear.empty();
$selectYear.empty();

for(var y = year; y < year + 2; y++){
$selectYear.append(new Option(y, y));
}
for(var m = 1; m < 13; m++){
$selectMonth.append(new Option(m, m));
}
$selectYear.val(year);
$selectMonth.val(mon);
generateDay();
}

javascriptのコードなのですが12行目のfor文の初期化式なのですが
for(var y = year; y < year + 2; y++)の条件式の部分の
「 y < year + 2 」、yが yearよりも小さければ処理を続けるという意味だと思うのですが
year + 2の部分の意味が良く理解できていないのですが
日本語で解説するとどのような文章になるでしょうか?
(yが year より小さければ year に2を足すという意味ではないですよね?)

A 回答 (1件)

for文の書式と意味は理解されていますね?


「 y < year + 2 」はforループの終了条件です。
yは整数ですから「 y ≦ year + 1 」とも書けます。

で。
このforループは何を処理する繰り返し処理でしょう?
yearは何を格納する変数でしょう?
そこを理解できればyear+1まで処理を繰り返す意味がわかるかと思います。

generateCalendarPulldown()は何をするものなのか(=機能)とその入出力を理解すれば、「それを行うにはこういう処理をすればよい」(=アルゴリズム)を自身で考える事が出来ます。
人が書いたプログラムを読む際は、その自分の考えとプログラムを書いた人の考えの差を埋める作業を行えばよいことになります。
その辺、つまりアルゴリズムをきちんと考える事が出来ないので「この処置は何でこうなんだろう?」とか「この処理は何をしているんだろう?」に陥りやすいのだと思います。

Javascriptに関していろいろ質問されているようですが根っこはそこにあるように感じます。
あとは基本文法の理解ですね。
練習問題を解いていたり、実際のソースコードを解析してJavascriptを勉強しようとされているのでしたら、少し背伸びをし過ぎかなぁという印象を受けます。もう少し基本的なところをしっかり勉強してから掛かった方がよいように思います。

参考まで。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!