switch文の繰り返しについて | 質問掲示板 | 独学!未経験からWebデザイナーになる!!

Web制作や付随することを何でも質問できるコーナーです。

未経験からWebデザイナーになる!! > 質問掲示板 > カテゴリ: JavaScript > switch文の繰り返しについて

switch文の繰り返しについて

当サイトのリニューアル作業に時間をあてるため、掲示板の投稿は当分停止させていただきます。
htmlで画像をクリックすると、特定のファイルに保存した画像を順次変更したいと考えています。
ところが、画像の枚数が多く、switch文のcaseのところをfor文で繰り返したいのですが、うまく行きません。

【html側】
<IMG ID=img1 SRC='/images/01/001.jpg' onClick='picchange1()' WIDTH='600' HEIGHT='400'>


【Javascript側】
var imgselect=1;
function picchange1(){
switch(imgselect){
case 0:
img1.src = '/images/01/001.jpg';
imgselect++;
break
case 1:
img1.src = '/images/01/002.jpg';
imgselect++;
break
case 2:
img1.src = '/images/01/003.jpg';
imgselect=0;
break
}
}




【Javascript側】
var imgselect=1;
var imagename='';

function picchange1(){
switch(imgselect){

for(i=0;i<30;i++){
case i:
imagename=zeroPadding(imgselect,3);
img1.src='/images/01/'+imagename+'.jpg';
imgselect++;
if(imgselect==31){
imgselect=0;
}
break;
}
}
}


このような形にしたいと思っています。
文法上の誤りや解決策などご教授願いたく思います。
恐れ入りますがどうぞよろしくお願いいたします。
ハイシィさん、こんにちは。

数枚でしたら最初の書き方でも動作しますが、大量になってくると大変なので、より多くの画像に対応出来るように改善されたい……ということですね。


2番目の「このような形に」、という方のコードを拝見しましたが、switchやforを使わなくても、シンプルに実現できます。


var imgselect=1;
var imagename='';

function picchange1(){
var maxImg = 30;
if (imgselect >= maxImg) {
imgselect = 1;
} else {
imgselect++;
}
imagename=zeroPadding(imgselect,3);
img1.src='/images/01/'+imagename+'.jpg';
}


maxImg の数値を変更すれば、枚数の変更もここだけで対応可能です。
もしもswitchやforを使わなければいけない特別な理由がありましたら、お知らせいただければと思います。

※ご記載いただいた仮のドメインが実際に存在するようでしたので、/から始まるパスに書き換えさせていただきました。動作としては同じになります。
馬場誠 様

早速のご返信、誠にありがとうございました。

htmlで人がクリックする度に変数の値が上昇するので、
forで繰り返しする必要がなかったのですね。
助かりました。ありがとうございました。
javascriptには関係しませんが、HTMLで、idにクォーテーションがついてませんよ。
恐らくこの質問だけのミスだとは思いますが。
 javascriptに関しては、馬場誠 様の回答の通りだと思います。