• ベストアンサー

この中でカウンタ変数はどれですか? <?ph

この中でカウンタ変数はどれですか? <?php for($i = 0; $i <= 4; $i++) { if($i === 3){ continue; } echo $i."\n"; }

  • PHP
  • 回答数6
  • ありがとう数6

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

>この中に$iは5個でてきます。 しかしすべて一つの$iです。 >どれが変数ですか?どれが初期値ですか?どれがカウンタ変数ですか? そもそも、一つの$iでしかないので、  >どれが変数ですか?   どれが?ではなく、すべて変数です。  >どれが初期値ですか?   代入は全体で一度しかされていない$i=0が初期値  >どれがカウンタ変数ですか?   変数そのものにカウンタ変数という事はありません。   カウント用に使っているかどうかだけです。   したがって、全部であり、全部違うでもある。 となります。 例えば、 あるプログラムA $i=50; //これは初期値です。 こっちは、$i=50で「50」を初期値にしてます。 という表現をしてOKですが、 あるプログラムB $i=50; //これは初期値ですが、 $i=100; //こっちが初期値です。 この場合のBは、 $i=50をトレースしている時は、 この行が初期値ですが、処理が次の行に進み、 $i=100をトレースしている時は、 最初の$i=50は初期値ではなくなり$i=100が初期値に変わります。 しかし変数はどちらも$iだという事。 なぜなら、50を覚えてている変数が消滅し 100を覚えた新しい変数に変わったためです。 「変数」=「変化する数字を覚えるもの」 なので、代入のたびに姿を変えながら動作しているのですよ。 という感じに、同じ名前の変数に対して どれが変数?どれが初期値?どれがカウンタ? と決めつけるのは、全く無意味なことなんです。

okwaveokw
質問者

お礼

わかりやすかったです 恐らくまた何度も同じことを質問します ひねった状況がでてきたときに混乱するので 順次進行で$iが変わっていくんですね

その他の回答 (5)

回答No.6

この中だけで考えていてはいけません。 おおよそC言語を源流に持つプログラミング言語では、 for文while文do-loop文until文などでカウンタ変数が使われます。 それらは、「初期値」を持ち、繰り返しの中で 「演算」され(加減乗除だけでなく自乗や剰余その他) 変化してゆく前提で定義されています。 そして、大抵の場合その値が「ある条件」に達すると、 繰り返しをやめるなり、繰り返しの1回だけパスするなりの 処理を決める役割を担っています。  ※ある条件に達しない無限ループもありますが・・   それは、回答が煩雑になるので、この場では割愛します。 カウンタ変数とはそういうものです。 それがわかれば「この中では」・・などと 考える必要はなくなります。

okwaveokw
質問者

お礼

ありがとうございます

回答No.5

>順次進行で$iが変わっていくんですね その、とーーーーーーーーーーーーーり! だから「変数」って言うんです。 進行しても値が変わらない物を「定数」ということは すでに勉強したと思います。 つまり、プログラムというのは、時間で管理された ある一瞬を表したものであり、 動いてなければ「どんなソースも意味を持たない!」 逆に動いていても「ある一点を実行中は、他の部分は実在しない」 ってことなんですよ!。 この「時間」を人間の脳で理解できてくると、 プログラムは楽しくなりますよ! なお、それが出来ない人は、8割はいると思います。 変な数字という意味ではなく、何かをやろうとした時、 大体できるのが2割で、8割は出来ないで終わるものなんです。 他のいろいろなジャンルでも同じです。 なので、あなたが「2割」側に入れるか?は 勉強ではなく、今回の場合は時間を理解する概念。 そんだけです。逆にこの概念を先に身に着ければ 勉強は不要です。 なので、 今回その時間の概念をPHPを使って覚えていこうとした! それだけのことですよ。 たとえば今PHPを勉強してますが、 「ほかにもプログラム言語はたくさんある!」 ってこと!。 しかし、ほぼ全部が時間の概念を持っているので、 根元をわからなければいくら勉強しても 覚えられないという事でもありますからね!。

okwaveokw
質問者

お礼

ありがとうございます

回答No.3

>つまり初期値ということですか? 変数の中身に初期値はありますが、 変数名に初期値なんてものはありません。 今回のソースを $iを$abcにしたところで、カウンターはあくまで$abcです。 要するに、 「何を使ってもよく、何をカウンターにしてもいい」 って事です。 サンプルのソースはそもそも「変数」が$iしかないので、 それが変数だと、すべての回答者が答えるというだけです。 それが、$zなら$zと回答者は答えるでしょう。 ただ、多くの場合カウンターとして使う場合は、 $iが使われます。(イテレーターの略で「i」を他の言語でも使う) しかし、例えば座標を扱うときは、 $x や $yだったりすることもあり、変数名そのものに「初期値」 はないという感じです。 なお、通常「初期値」というのは その変数が初めてソース上で出現した時、 何らかの値を入れる行為を「初期値」といいます。 今回なら for ( $i=0 ←この部分 ってな感じでOKですか?

okwaveokw
質問者

お礼

この中に$iは5個でてきます。 どれが変数ですか?どれが初期値ですか?どれがカウンタ変数ですか? for($i = 0; $i <= 4; $i++) { if($i === 3){ continue; } echo $i."\n";

回答No.2

>この中でカウンタ変数はどれですか? ってタイトルですが、 そもそも変数は、「$i」以外使ってませんから、 それです!。

okwaveokw
質問者

お礼

ありがとうございます つまり初期値ということですか?

  • t_ohta
  • ベストアンサー率38% (5071/13248)
回答No.1

そのプログラムの中には変数が一つしかありません。 なので、探すまでも無く $i と言う事になりますね。

okwaveokw
質問者

お礼

ありがとうございます

関連するQ&A

  • phpでcontinueはなぜ1文字スキップするん

    phpでcontinueはなぜ1文字スキップするんでしょうか?スキップするならcontinueじゃなくてskipですよね?3になったらskip <?php for($i = 0; $i <= 4; $i ++){ if($i == 3) { continue; } echo $i."\n"; } ?>

    • ベストアンサー
    • PHP
  • <?php $arr = [2,4,6,8,10]

    phpでこの式はどういう仕組になっているのか教えて下さい for文カウンタ変数 <?php $arr = [2,4,6,8,10]; for($i = 0; $i <= 4; $i++){ echo $arr[$i]."\n"; }

    • ベストアンサー
    • PHP
  • phpでcontinueはなぜ1文字スキップする?

    phpでcontinueはなぜ1文字スキップするんでしょうか?スキップするならcontinueじゃなくてskipですよね? このコードの結果は 0 1 2 3がなくて 4 と表示されます つまり0124です なぜ3がないんでしょうか?3をスキップしていますよね? 3になったらskip <?php for($i = 0; $i <= 4; $i ++){ if($i == 3) { continue; } echo $i."\n"; } ?>

    • ベストアンサー
    • PHP
  • phpのコーディングの練習問題で画像の文章をコーデ

    phpのコーディングの練習問題で画像の文章をコーディングするんですが、 なぜ3でスキップと言っているのに、$i ==2 と書いているんでしょうか? <?php for($i = 1; $i <= 10; $i++){ if($i == 2){ continue; } else if($i == 7){ break; } else { echo $i."\n"; } }

    • 締切済み
    • PHP
  • フォームを使った配列変数の受け渡し

    PHP初心者です、よろしくお願いします。 フォームからPHPで配列変数を受け渡すことを考えています。 一次元配列はうまく渡せましたので、これを二次元にしましたところ、 うまく渡せません。基本的なPHPの文法がわかってないので、つまづい ています。多分、配列変数の記述方法がおかしいのだと思うのですが・・。 ご教授よろしくお願いします。 <html> <body> <form method = "POST" action ="test2.php" > <?php //データ渡し側 for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j <2;$j ++ ){ echo ("<input type ='text' name = 'data[$i][$j]' size ='10'>\n"); echo ("<br>\n"); } echo ("</tr>\n"); } ?> <input type="submit" name ="sbmit" value="data_input" > </form> </body> </html> <?php //データ受け側 for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j < 2;$j ++ ){ $tmp_data[$i][$j] = $_POST["data"][$i][$j]; echo ("$tmp_data[$i][$j] <br>\n"); } } ?> <html> <body> <form method = "POST" action ="test2.php" > <?php for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j <2;$j ++ ){ echo ("<input type ='text' name = 'data[$i][$j]' size ='10' value='$tmp_data[$i][$j]'>\n"); echo ("<br>\n"); } } ?> </table> <input type="submit" name ="sbmit" value="in" > </form> </body> </html> 実行結果は、 Array[0] Array[1] Array[0] Array[1] と表示されて、実際の入力した値が反映されません。

    • ベストアンサー
    • PHP
  • javascriptの変数をPHPの変数で受ける

    下記のようなjavascript において、グローバル変数clicked の値を PHPの変数$clickedで受けたいのですが、どうすれば受け取れるでしょうか? var_dump()してみると、undefinedや、NULLと表示されます。 要は、カレンダーの<td>要素をクリックしたときの日にちの番号を PHPの変数で受けたいのです。 echo '<tr id="calheader" bgcolor="#ffffcc">'; for($i=1; $i<=7; $i++){ echo '<td valign="top" align="center" class="smallText" id="'.$i.'" onclick="pusharea(this);">'.$i.'</td>'; <script language="javascript"> <!-- var clicked; // グローバル変数 function pusharea(obj){ clicked = obj.id; } // --> </script> </head> ----------------------------------------------- <script language="javascript"> alert(clicked); // <?php echo $clicked;?>=clicked; </script> <?php var_dump($clicked); echo '<tr>'; for($i=1; $i<=7; $i++){ /*if($i===$clicked)*/ echo '<td valign="top" height="50" align="center" class="smallText">'.$user.'</td>'; //else echo '<td valign="top" class="smallText">&nbsp;</td>'; } echo '</tr>';

  • URL変数が定義されているかどうか調べる

    PHPで、http://127.0.0.1/test.php?hensuu=Y というページをオープンした場合、 echo $hensuu; if (defined("hensuu")) { echo "Y"; } else { echo "N"; } 最初のecho文ではちゃんと"Y"を出力されるにもかかわらず、次のif文では"N"と出力されます。 URL変数が入力されたかどうかを確認するのにdefinedは使えないのでしょうか?

    • ベストアンサー
    • PHP
  • phpのコーディングの練習問題で画像の文章をコーデ

    phpのコーディングの練習問題で画像の文章をコーディングするんですが、 なぜ3でスキップと言っているのに、$i ==2 と書いているんでしょうか? <?php for($i = 1; $i <= 10; $i++){ if($i == 2){ continue; } else if($i == 7){ break; } else { echo $i."\n"; } } 画像を添付しわすれたので再度投稿させていただきます

    • ベストアンサー
    • PHP
  • 変数文字の中に変数を入れたい

    初心者です。宜しく御願いします。 java sprictで文字列の中に変数名を入れたいのですが、 可能でしょうか? 例えば、PHPとかですと、変数の前に「$」があるので、 $hensu1="5"; ${hensu.$hensu}="dekirukana";←このような表現がしたいのです。 echo $hensu5; のような(上のプログラムが動くかどうかは別として)表現が可能かどうかが知りたいのです。 for文などで、一度に多くの変数に値を入れたいのですが、 どうあがいてもできません。わかりません。 どなたか救いの手をお願いします。

  • POSTの配列名に変数を使用したい

    お世話になります。 ↓このあたりを見てみたのですが解決せず。。。 http://ml.php.gr.jp/pipermail/php-users/2002-February/005209.html --質問内容-------------------------------------------------------------------- ●$_POSTの配列名に変数を使いたい場合は、どのように書くのが正しいのでしょうか? ------------------------------------------------------------------------------ --状態------------------------------------------------------------------------ <? 1 for($a = 1; $a < 11; $a++) { 2 echo '<select name="item' . $a . '_count">' . "\n"; 3 for($i = 0; $i < 11; $i++) { 4 echo '<option value="' . $i . '">' . $i . '</option>' . "\n"; 5 } 6 echo "</select>\n"; 7 } ?> 上記は入力フォームの一部で、セレクトボックスを10個ほど吐き出しています。 このフォームの他の項目でエラーがあった際に、 選択していた値がページロード時に選択されるようにしたいと思っています。 その際は、 if ($i === $_POST[item . $a . _count]){ echo 'selected="selected"'; } か、 if ($i === $_POST[item . $a . _count]) echo 'selected="selected"'; を4行目の辺りに加えれば良いかなと思い、 付け加えてみるのですが、シンタックスエラーが出てしまい、 訳がわからなくなってしまいました。 ------------------------------------------------------------------------------ お手数ですが、ご教授いただければ幸いです。

    • ベストアンサー
    • PHP

専門家に質問してみよう