![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_10.png?5a7ff87)
C言語や、それに文法が似ている言語では、
for(i=0; i<10; i++)...
のような例をよく見かけます。
ここで、何故か++iよりi++を使うほうを非常によく見かけるのですが、何故なんでしょうか?
単独で使う分にはどちらでも同じなので、実際はどうでもいいのですが。
個人的には、++iは副作用がまずあって、その副作用の結果を返すのに対し、i++は副作用があることは同じですが、「副作用を起こす前の値」を返す演算ということで、i++の方が少々不自然な感じがしますので、++iの方が好きなのですが。
もし、何か特別な理由があることを知ってらっしゃる方がいたらお願いいたします。
No.2
- 回答日時:
見やすいから, でしょうね.
理論上は ++i の方が速くなる可能性があるんですが.
回答ありがとうございます(^^)。
やはり、見やすさ、という方が多いですね。
速さに関しては、確かに機械語にはインクリメント命令があるわけだから++iは使い場所によっては非常にはやくなりますね。まあ、コンパイラの最適化でそれほど大きな差が出ないかもしれませんが。
とはいえ、共同でプログラムを作ったり、何度も「バージョンアップ」をしなければならないソフトの世界では、見やすさもはやさのうちかもしれませんね。
No.1
- 回答日時:
今回の例のようなケース(for ループの初期化)では、
++i
より
i++
のほうが、見やすいからです。i++ のほうが、変数 i が先に書かれているので、i をインクリメントするとわかりやすいですね。++i だと、++ の後の変数を見ないと、インクリメントする変数がわからないですね。
質問のところにかいてあるように、副作用の有無により、書き分けるケースもあります。
この回答への補足
見易さの意味では、後置の方がfor文では
for(i ~ ;i ~ ;i ~ )...
となって、整然としている、ということもあるかもしれませんね。
お礼が遅くなってすみません。
さっそくの回答、ありがとうございました。
確かに見やすさは大切ですね。
視線は先頭の文字を最初に見るわけですから、この回答は非常に役に立ちました。
何か、いろいろな話題が出てるようなので、締め切る前にいろいろ勉強しないといけなくなってしまいました(^^;;;。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 薬学 首肩こり 痛み止めの薬 医療用鎮痛剤 筋肉の痛みに使いたいです 2 2022/05/20 18:24
- 薬学 整体 首肩こり 痛み止めの薬 医療用鎮痛剤 筋肉の痛みに使いたいです 1 2022/05/19 01:38
- 睡眠障害・不眠症・過眠症 【指定第2類医薬品】ドリエル12錠について、使ったことのある方に質問です。長く使った方、副作用はあり 1 2023/06/17 10:49
- 放射線治療・リハビリテーション 抗がん剤の影響で咳が酷くなってきましたが、主治医は他の病院で治療しなさいというだけ 2 2023/05/14 22:34
- その他(ニュース・社会制度・災害) 無くそう思い込み、守ろう個性と言いますが、実は性差別って個性を守ろうとした副作用では? 3 2023/08/03 22:07
- 不妊 リュープリン注射の副作用について質問です。 子宮筋腫の手術のため、リュープリン注射を3回打ちました。 3 2023/07/06 09:07
- 婦人科の病気・生理 21歳です。子宮頸がんワクチンを打とうか打たないかで悩んでます。 周りの友人の友人で2人も副作用が出 3 2022/05/18 05:16
- 英語 「名詞+形容詞/現在分詞/過去分詞+to不定詞の副詞的用法」の語順について 7 2022/09/22 05:27
- 英語 提示文の名詞の副詞的用法(副詞的目的格)の共通点・分類名について 4 2022/09/09 09:45
- 会社・職場 やっぱりまずいですよね… 5 2022/07/16 23:22
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アセンブリ言語で。
-
MIPS と クロック周波数の換算方法
-
プログラム言語FortranとCの違...
-
シーケンスプログラムについて...
-
casl2のSUBA命令
-
組み込みCプログラムで実数型
-
RPG画面系システムについて
-
VBAでのコントロール操作
-
任天堂64の64 CPUの仕...
-
32ビット用のソフトを64ビ...
-
JIS、SHIFT-JIS、EUCはなぜでき...
-
【有効数字について】 授業で、...
-
文字の容量(サイズ)についての...
-
KBのMB違いって
-
(*^_^*) キロバイトと字数の...
-
EXCELでの16進数取り出し、上...
-
6ビット(符号含む)の二進数
-
1Mバイトって何バイト?
-
テキストの半角文字を全部削除...
-
基本情報技術者試験のビットに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラム言語FortranとCの違...
-
命令網羅率の計算問題です
-
組み込みCプログラムで実数型
-
VBSとVBA
-
VBAでのコントロール操作
-
COM1(RS232C)とUSB仮想COMポー...
-
MIPS アセンブリ言語
-
なぜ、i++なのか?(ものすごく...
-
64ビット化による処理速度低下...
-
アセンブリ言語で。
-
パイプライン処理の処理能力に...
-
任天堂64の64 CPUの仕...
-
ステート数とは
-
arduino
-
マイコンのビット数とクロック数
-
H8Sで割り込み発生時の飛び先ア...
-
IPCについて
-
PICマイコンのプログラムについ...
-
MIPS と クロック周波数の換算方法
-
CPUのHTについて教えてください。
おすすめ情報