3

この単純な for ループがありますが、残念ながら正常に実行できません。

これは私が持っているものです:

ループの場合

 var imagesPerPage = 2

  for (i = 0; i < response.d.length; i++) {
    if (i > imagesPerPage) {
     alert('more');
     }else{
     alert('less');
     }
  }

このコードを実行するfirstと、<= 2の場合、"less"alertが表示されtwiceます。しかし、2 を超えると、 alert と alert が表示"less"twice"more"ますonce

誰かが私がどこで間違っているのか教えてもらえますか?

4

2 に答える 2

6

ifこれに単純な構成を使用しないのはなぜですか?

var imagesPerPage = 2

if ( response.d.length > imagesPerPage ) {
  alert('more');
} else {
  alert('less');
}

あなたのコードでは、ループは常に実行されますresponse.d.length。最初の 2 回では、if の false 部分が発火し、2 つの「さらに」アラートが発生します。その後、他のすべての実行は if 句の真の部分を使用し、「more」を返します。いずれにせよ、何を警告しても、すべての実行が行われます。

breakただし、ループを終了したいポイントにコマンドを挿入することで、ループを停止できます。ただし、これはしばしば非常に不明確なコードにつながるため、可能であれば回避する必要があります。(さらに、これがあなたの望む動作であるとは思えません。)

于 2012-04-27T09:03:07.190 に答える
3

なぜ for ループが必要なのですか? これで十分だと思います:

 if ( response.d.length > imagesPerPage ) 
 {
   alert('more');
 }
 else
 {
   alert('less');
 }
于 2012-04-27T09:03:59.820 に答える