プロが教える店舗&オフィスのセキュリティ対策術

以下の文は、は無限ループでエラーになるのでしょうか?また、continueを使った、この問題の正しい書き方を教えていただきたいです。よろしくお願いします。


【問題】while文を使用して、変数i=1~100までのうち、7で割り切れる数字を、変数countに全て足したらいくつになるか計算して、それをoutput()で出力する。
_______________________________________________________________________
var i = 1;
var count = 0;


while(i<=100){
if(count%7!=0){
continue;
i++;
}
count+=i;
i++;
}


output(count);

___________________________________________________________________

A 回答 (3件)

カウンタのインクリメントより先にコンティニューしたら


iが常に一定なのでiは100以上にならないでしょ?

せめて
i++;
continue;

っていうか、countを7で割った余りをだしたり、意味不明

while(i<=100){
if(i%7==0) count+=i;
i++;
}
    • good
    • 0
この回答へのお礼

おっしゃるとうりcountを割ってるのが意味不明なのを今気づきました;;;
countじゃなくて、iですね。

インクリメントが先ですね;;;

突っ込みどころ満載の駄文に、つっこんでいただき助かりました。

ご回答いただき有り難うございました。m(_ _)m

お礼日時:2012/10/10 17:25

No.1さんと同意見です。


この文法なら、continueを使う必要がありません。
どうしてもcontinueを使いたいなら

var i = 0;
var count = 0;

while(i<=100){
 i++;
 if(i%7!=0){
  continue;
 }
 count+=i; 
}

こんな感じかな。
どうみてもNo.1さんの回答の方がスマートですが。
    • good
    • 0
この回答へのお礼

continueを使う、というテーマでしたので、continueを入れたやり方が知りたかったのです。
でも、問題自体には、No.1さんの回答がスマートなのは、今理解いたしました。
ご回答いただき有り難うございました。m(_ _)m

お礼日時:2012/10/10 17:28

こそっと。



for(var i=100,c=0;i;i--)c+=i%7?0:i;alert(c)
    • good
    • 0
この回答へのお礼

まだそこまで理解が及びません・・・

お礼日時:2012/10/10 17:29

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