• 締切済み

前置と後置について

前置と後置について知りたいことがあります。 コードは下記のようなものを例にします。 いちばん左の数字はコードの数字ではなく、わかりやすいように つけた番号です。ブラウザに表示した場合は (1)=1、(2)=2、(3)=1、(4)=1になりますよね。 (4)についてなのですが、このブラウザ表示以降にコード内で2になるということですか?その辺の解釈の仕方がよくわかりません。ご教授、よろしくお願いします。 (1) print $x = $a = 1; (2) print $x = ++$a; (3) print $x = $a =1; (4) print $x = $a++;

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.1

(2)は、 $a = $a + 1; $x = $a; print $x; と等価です。 (4)は、 $x = $a; $a = $a + 1; print $x; と等価です。

関連するQ&A

  • インクリメント演算子の前置(++a)と後置(a++)の違い

    こんにちは、Java初心者です。どなたか質問タイトルの件で教えていただけませんでしょうか。 Javaのテキストで下のようなものがあったのですが、違いがテキストの説明ではよくわかりませんでした。この場合はどう違うのですか?初心者向けに、参照、演算の詳細なタイミングを一つ一つ教えていただけないでしょうか?前置の方が2になるのはなんとなくわかりそうなのですが、後置はさっぱりなのです。。。 int x, a=1; x=++a; ⇒xの値は2 int x, a=1, x=a++1; ⇒xの値は1のまま また、実例としてはどんな場合に前置又は後置を使うのですか? よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 後置増分演算子と前置減算演算子についての質問です。

    dist[a[i].price]++; ……1 b[--dist[a[i].price]]=a[i]; ……2 1式についてはa[i].priceである要素の個数を数えているそうですが、1式は後置演算増分子で dist[a[i].price]=dist[a[i].price]+1 となると思うので、違うと思うのですが…… また、2式については,分かりやすく書き直すとどのようになるのでしょうか? これは、分布数え上げソートのソースコード中にでてきたのですが、この部分の解釈ができなくて、困っています。宜しくお願い致します。

  • Perlインクリメントデクリメント

    あっていますでしょうか? インクリメント演算子とデクリメント演算子 インクリメント(加算)演算子は変数の数値を一つ増やす。 デクリメント(減算)演算子は変数の数値を一つ減らす。 ++ インクリメント演算子 変数の値を1増やす $a++ ++$a $aの値を1増やす -- デクリメント演算子 変数の値を1減らす $a-- --$a $aの値を1減らす $a=1; 変数$aに1を代入する print "はじめは$aでした。\n"; $aの代わりに1が入り はじめは1でした。と表示する。 $a++; $aに1を足す。 print "1増えて$aになりました。\n"; $aの代わりに2が入り、1増えて2になりました。 と表示する。 $a--; $aから1減らす。 print "1減って$aに戻りました。\n"; $aの代わりに1を入れて 1減って1に戻りました。 と表示する ↓ 実行結果 ↓ はじめは1でした。 1増えて2になりました。 1減って1に戻りました。 $a++ と ++$a の違い インクリメント演算子、デクリメント演算子には2通りの書き方があります。 ++$a(前置)と$a++(後置) --$a(前置)と$a--(後置) 前置の場合は変数の参照より先に演算が行われます。 後置の場合は変数の参照より後に演算が行われます。 $x=$a=1; 変数$xと$aに1を代入する。 $x=++$a; $aに1を足した後に$xに代入する。$xの値は2になる。 $x=$a=1; 変数$xと$aに1を代入する。 $x=$a++; 変数$aの値を$xに代入した後に$aに1を足す。$xの値は1。 文字もインクリメント出来ます。 $x="A"; "A"を$xに代入する。 $x=++$x; Aから一つ増やしてBにして$xに代入する。 $x="aaa"; "aaa"を$xに代入する。 "aaa"を一つ増やして"aab"を$xに代入する。 ただし、文字のデクリメントはできません。

    • ベストアンサー
    • Perl
  • 現在、プログラムが解けずに悩んでいます。どうかお力を御貸しください。

    int main() { Power p1, p2(2), p3(3); //初期値の設定 p1.print("p1=");p2.print("p2=");p3.print("p3="); //メンバ関数printで表示 (++p2).print("++p2="); //++p2は,p2のメンバ値の2乗(前置演算) p2.print("p2="); (p3++).print("p3++="); //p3++は,p3のメンバ値の2乗(後置演算) p3.print("p3="); return 0; } ※クラスPowerには、int型のメンバ値を1つだけ持ち、メンバ関数として、operator++とprint()を持つ。 operator++には前置演算用と後置演算用の2種類がある。 解ける人がいましたら、教えてください。 お願いします。

  • EXCELの置換 方法

    前回も似たような質問をさせていただいたのですが、 また似たような処理が出てきてしまったので質問させてください!! もしお分かりになる方がいらっしゃいましたらアドバイスいただけると嬉しいです。 よろしくお願いします!! コード番号の一括置換えをするにはどうすれば良いのか教えてください。!! <例> 00000X0-0 00111T0-1 00200S0-0 00003K0-0    ・    ・    ・    ・ 上記のような数字5桁/英字1文字/数字1桁/ハイフン/数字1桁 で表記されるコード番号があります。 このコード番号を数字3桁/英字1文字/数字2桁/ハイフン/数字2桁 で一括置換えしたいのですが、それは可能でしょうか? <例> 000X00-00 111T00-01 200S00-00 003K00-00 *英字の次の数字とハイフンの次の数字は“0”が挿入されます。 (下線の箇所です。) コード番号の数が600件程あるので、一括置換えができると とても時間短縮になるのですが、、、。 置換えでなく、他の方法で変換が出来るのでしたらそちらも 教えて頂ければと思います。 (難しいマクロとかはやったことがないのでできましたら関数の応用などで 出来るやり方を教えて頂ければ有難いです。) 宜しくご指導お願いします。!!

  • ソースコードを表示するブラウザはありますか?

    次のような機能を持ったブラウザを探しているのですが、このようなものはあるのでしょうか? (1)URLを指定するとそのページのソースコードを表示する。 (2)ソースコード中の<A>タグ(またはURL)をクリックすると、そのURLをIEなどのHTMLを解釈して表示するブラウザに渡して表示させる。

  • 改行の方法を教えてください

    <html> <body> <?php $a = 2; $b = 8; print ($a); print ($b); ?> </body> </html> 上のコードをブラウザで表示させると「28」となります。2と8を改行させて 2 8 と表示させたいのですがどうしたらいいでしょうか?<br />をどこかに入れるのかと思ったのですが、エラーが出てうまくいきません。初歩的な質問ですみませんがよろしくお願いします。

    • ベストアンサー
    • PHP
  • 前置と後置

    下記のようにfor文でインクリメントを先につけてる人をたまにみかけるのですが for( itr = m_v.begin() ; itr != m_v.end() ; ++itr ) for文でインクリメント(デクリメント)を先につけるのと後につけるので 結果が異なる場合ってありますか? 宜しくお願いします。

  • エクセルVBAについて

    エクセルVBAに詳しい方教えて下さい。   A   B   C     左のようなエクセルの表で 1 品数  4         B1セルに品数を入れると 2 番号           番号の1~4までの行が残り 3 1              それ以降(5から)の行全てが 4 2             非表示になるようなコードを教えて  5 3             頂けないでしょうか。 6 4               7 5             品数は随時書き換えて入力する事を 8 6             前提としています。 ・ ・ ・ ・             お願い致します。

  • アクセス97をエクセル97にエクスポートして起こる問題

    どなたか、ご助力をお願いします。 アクセスでテーブルを作成し、4桁のコード番号をたくさん入力していきます。件数は500件くらいです。そのテーブルをエクセルにエクスポートします。そのデータの名前を仮にAとします。 エクセルにはあらかじめ全顧客リストのマスタデータがあります。そのデータをMとします。Mにはコード番号とコード番号に対する名前と住所などの情報が記載されています。 Aのリストは全てMに含まれます。 AのファイルにMを別シートに置いて、Vookup関数でAのデータのリストを完成させたいのですが・・・。 問題なのは、アクセスからエクスポートしたコード番号の数字と、元々Mに入力されている番号が同じ数字でもどうやら違うようなのです。書式も同じのようですが、Vookup関数では反映されません。 エクスポートしたAのコード番号はセルの左に寄っていて、Mの数字は右に寄っています。Aを右寄せしたり、共に中央寄せをしてもこの問題は解決しません。 エクスポートした番号をエクセルでそのまま入力した番号と同じくするにはどうしたら良いでしょうか?

専門家に質問してみよう