下記の記述で「こんにちは」が5回表示されてしまいます。
これは0回、1回、2回、3回、4回だから「こんにちは」が5回ひょうじされてしまうのだと考えればよいのでしょうか?つまり0回目には「こんにちは」がすでにセットされているんだよ、と考えるべきなのでしょうか。よろしくお願いします。
javascript
1<html> 2<body> 3<script> 4for(let count = 0;count<5;count++){ 5document.write("こんにちは"); 6} 7</script> 8</body> 9</html>
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/04 11:05
回答6件
0
これは0回、1回、2回、3回、4回だから「こんにちは」が5回ひょうじされてしまうのだと考えればよいのでしょうか?つまり0回目には「こんにちは」がすでにセットされているんだよ、と考えるべきなのでしょうか。
「0回目」は何も実行していないと同義なので、その解釈では「1~4回」の計4回の出力がされるのが正しく、辻褄が合いません。
この場合は、
- 1回目: count === 0
- 2回目: count === 1
- 3回目: count === 2
- 4回目: count === 3
- 5回目: count === 4
のように、「回数」と「count
値」が一つ分ズレているのが認識を阻害している要因です。
変数 count
を出力すれば、それが分かりますし、
JavaScript
1for(let count = 0;count<5;count++){ 2 document.write(count); 3}
変数 count
に「回数」の意味を持たせたいのであれば、初期値を1にすれば良いでしょう。
JavaScript
1for(let count = 1;count<5;count++){ 2 document.write(count); 3}
質問文のコードは変数の名前と値が一致してない点において、視認性の悪いコードです。
変数名を「初期値=0」でも問題ない意味を持つ名前に変えるか、上記コードのように「初期値を1にする」のが適切と思われます。
Re: hisayan さん
投稿2019/08/04 13:16
総合スコア18162
0
ベストアンサー
下記の記述で「こんにちは」が5回表示されてしまいます。
問題を単純化するために1回にしてみましょうか。
javascript
1 2for(let count = 0; count<1; count++){ 3 document.write("こんにちは"); 4} 5
- 初期値count = 0;
- 条件「count<1」が真で条件を満たすのでfor本体を実行。
- document.write("こんにちは");
- count++; (count = count + 1と同じ意味です)
- count = 1;
- 条件「count<1」が偽で条件を満たさないのでfor終了。
投稿2019/08/04 07:32
総合スコア777
0
下記の記述で「こんにちは」が5回表示されてしまいます。
そのように書いているからです。
書いた通りにしか動きませんので。
その動作は仕様通りです。
下記とやろうとしてることは同じということはわかりますか?
js
1for(let count = 1;count<=5;count++){
分からないのでしたら分かるまでデバッグしてください。ただし、厳密には全く同じではありません。
「ループがどういうものか」という根本部分です。
他者の説明ではなく、自分で色々値や条件を変えて動かしてみて理解を深めるものです。
投稿2019/08/04 11:10
編集2019/08/05 00:32総合スコア80850
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/07 21:54
2019/08/07 23:57 編集
0
下記の記述で「こんにちは」が5回表示されてしまいます。
「『こんにちわ』を1回表示する」処理を5回やっているので、当然そうなります。
これは0回、1回、2回、3回、4回だから「こんにちは」が5回ひょうじされてしまうのだと考えればよいのでしょうか?
あってます。
つまり0回目には「こんにちは」がすでにセットされているんだよ、と考えるべきなのでしょうか。
「すでに」を言葉通り解釈すれば、間違ってます。
また、「セット」という表現も適切ではありません。
0回目の処理としてfor文に続く{}
内の式が実行されているだけです。
投稿2019/08/04 07:04
総合スコア8949
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
これは。変数countがfor文の最後に加算されるのか、それとも前に加算されるのかということです。
つまり、この文でいう
document.write("こんにちは"); ``` の後に代入されるのか、どうかということです。 javascriptだと後に代入されると考えられるので、 0の時でも実行される、つまり 0回目、1回目・・・という風に数えるのだと思います
投稿2019/08/04 06:42
総合スコア62
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/04 07:00
2019/08/04 07:05
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。