今回は 制御文 のまとめをする前の復習として、CodeStudy 12-10 の continue をやってみます。
問題
while 文を使用して、変数 i = 1~100 までのうち、7 で割り切れる数字を、変数 count に全て足したらいくつになるか計算して、それを output ( ) で出力してください。
var i = 1;
var count = 0;
//ここにループを書きましょう。
while (i <= 100) {
i ++;
if (i % 7 != 0) {
continue;
} else {
count += i;
}
}
output (count);
if (i % 7 != 0) {
continue;
} else {
count += i;
}
}
output (count);
赤字の部分が 自分で書く必要のある所です。
赤字の部分の
1行目で、while 文を使って繰り返しの処理をしています。繰り返しの条件は、i が 1~100 ですので、100以下 となるように i <= 100 にしました。i は 1づつ増やすので、i < 101 でも良いかも知れません。
2行目 i を 1 増やしていますが、これは i が7になる迄は、count に足される事が無いというのが 予め判っているのでこれでも良いのですが、予め判らない場合は if 文で 分けた処理のそれぞれ最後に i ++ を入れるのが良いと思います。
3~6行目 if 文を使って i が 7 で割り切れるかを判定しています。not 演算子 ( ! ) を使って 7 で割り切れない場合に continue でループを 1回スキップさせて、割り切れる場合は else 以下で i の値を count に足しています。これは not 演算子を使わないで、
if (i % 7 == 0) {
count += i;
} else {
continue;
}
このように書いても同じですが、これだと continue を使わなくても同じになってしまうので、回答例のようにしました。
この例題でも、インクリメントをちゃんと入れないと無限ループになってしまうので、注意して下さい。
よろしければこちらの記事もどうぞ
CodeStudy の問題に挑戦した記事の一覧