1 名前:デフォルトの名無しさん [2018/08/16(木) 23:36:02.22 ID:fOCSKLtw.net] C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ 前 C言語なら俺に聞け 146 https://mevius.5ch.net/test/read.cgi/tech/1525031257/
64 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 10:40:22.58 ID:gERn4ySS.net] >>60 もう一度言う、おまえの主観は聞いてない 正論か屁理屈かはおまえの主観だ 客観的事実を示せ、理屈はそれからだ
65 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 10:57:00.63 ID:vnB4usre.net] >>63 だれも機械の解釈の違いには言及してない定期
66 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 10:59:30.05 ID:gERn4ySS.net] >>62 void func(int ary[][100]); これはできるのに int func(void)[][100] これはできない { int ary[][100]; これもできない ary = 0; return ary; } extern int ary[][100]; と extern int (*ary)[100]; は意味が違う 結局、[]で書くべきなんて主張は 通用しないところが多すぎる戯れ言だ
67 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 11:01:09.20 ID:gERn4ySS.net] >>64 プログラム言語は機械に解釈させるためのものだ 自明なことを誰も言ってないなんてことこそ屁理屈そのものだろうが
68 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 11:01:29.60 ID:+F/9g7TB.net] >>66 糖衣構文
69 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 11:02:23.89 ID:gERn4ySS.net] >>67 全然関係ねえぜ 暑さで気が触れたか?
70 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 11:05:05.84 ID:eIEuxTun.net] >>68 機械の解釈が同じでも人間には違う意味に見えるのはあるよな?
71 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 11:55:44.43 ID:gERn4ySS.net] >>69 void func(int ary[100]); これのどこが void func(int *ary); これの構文糖衣なんだ? 書いた奴の頭を疑わせる以外にどんな意味があるんだよ
72 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 11:56:39.26 ID:gERn4ySS.net] サイズが100でなければならない関数なら void func(int (*ary)[100]); こう書いて int ary[100]; func(&ary); こう渡せよボンクラ
73 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 12:10:27.14 ID:QteKsmYB.net] まあ多次元配列を引数にするのは良くないと思うわ
74 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 12:28:57.33 ID:GIXT+l9b.net] >>71 どうした? コードレビューで上司にボコボコにされた腹いせか? こんなとこでイキっても虚しいだけやで。
75 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 12:29:15.96 ID:GIXT+l9b.net] >>71 どうした? コードレビューで上司にボコボコにされた腹いせか? こんなとこでイキっても虚しいだけやで。
76 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 12:47:09.71 ID:EQ4qcC3V.net] >>72 なぜ?
77 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 12:53:55.98 ID:gERn4ySS.net] >>73 ここがム板ってことを忘れたか? 技術的な話で来い
78 名前:デフォルトの名無しさん [2018/08/21(火) 12:54:14.69 ID:m1oFA/yA.net] 多次元配列の型は typedef で型名作っておけば楽なのでは?
79 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 12:56:41.15 ID:Fhw28p93.net] >>68 >>76 この書き込みのどこが技術的な話なんだw 単にイキってるだけじゃん。
80 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 13:04:39.72 ID:gERn4ySS.net] >>78 構文糖衣の話をしたんだが 構文糖衣と書いてないと読めないオツムなのか? アホw バカwww
81 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 13:05:57.10 ID:gERn4ySS.net] さて、買い物に行くぜ 妻子の夕飯を作らにゃならん
82 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 13:09:48.25 ID:O6Fgkzwj.net] >>75 そりゃわかりにくいからだよ。 引数にするとCの多次元配列の嘘くささがよく表れるわ。 せめて構造体で包むとかして名前を付けた方がいいね。
83 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 13:09:58.77 ID:EQ4qcC3V.net] >>71 無駄なコスト
84 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 13:10:23.54 ID:RiLuNws8.net] >>70 それを糖衣構文というかどうかどうでもいいけど だれも機械の解釈の違いには言及してない定期 >>50 ➡>>52 明示とは機械に対してではなく人間に対してのことを言ってるからこの返信は意味がずれてる
85 名前:デフォルトの名無しさん [2018/08/21(火) 14:09:26.92 ID:Xve8S0h8.net] 超初心者です。 シミュレーターで動かしながら独学で学んでいるのですが、 scanfが動かない(スルーされる)ので困っています。scanfが動くシミュレーターってあります?
86 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 14:13:40.03 ID:Xve8S0h8.net] 今はpaiza.ioを使っています
87 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 14:16:15.27 ID:Hz7fBosn.net] 下の入力欄が空白じゃないの?
88 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 14:27:50.04 ID:Xve8S0h8.net] 解決しました。ありがとうございました。
89 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 20:15:22.43 ID:FwleoeVd.net] for文でこんなのを発見したのです。 for(;;) ご覧のとおりセミコロンがカッコ内に2つあるだけ。 これはどういうfor文でしょうか。 ググり方も分からないです。
90 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 20:17:35.28 ID:bAEvazF4.net] 無限ループ
91 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 20:22:25.64 ID:i/CPlprw.net] 昔からその書き方の無限ループを好む人は多い 俺が知ってる範囲だとカーニハンもその書き方を好んでいた
92 名前:88 mailto:sage [2018/08/21(火) 20:22:27.49 ID:FwleoeVd.net] >>89 (*´Д`)ありがとうございました。
93 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 20:27:12.52 ID:mIqstMqN.net] 無限ループって言っても 大概は何かの条件で脱出するわけだから while (条件) が一番わかりやすいと思う あ、好みだろうから、反論は不要です
94 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 20:34:59.42 ID:8p839GFL.net] >>92 俺も無限ループはwhile(TRUE)派だな。 静的解析で怒られるから使うなって人もいるけど。 これも個人の好みなので反論不要です。
95 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 20:45:15.49 ID:FwleoeVd.net] 無限ループには for(;;) while(1) while(true) などがあるようですが、驚いたことにfor(;;)がC言語の伝統的スタイルなんだそうで。
96 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 20:50:55.87 ID:mIqstMqN.net] goto 笑
97 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 21:07:06.74 ID:FuTngql1.net] do { } while (true); だな
98 名前:デフォルトの名無しさん [2018/08/21(火) 21:12:46.13 ID:xHZnBR+z.net] true って新しいCだと使えるの?
99 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 21:15:49.80 ID:Bspmt0aQ.net] _Bool
100 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 21:18:05.52 ID:mIqstMqN.net] while (1==1) なんて
101 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 21:21:39.51 ID:WLqP+HZB.net] for(;;)は無条件であることを的確に表現してる 条件が書いてないのはこれだけ
102 名前:デフォルトの名無しさん [2018/08/21(火) 21:30:40.05 ID:xHZnBR+z.net] そういややったことないけど while () はできないのかな? できたらできたでなんか怖いがw
103 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 21:35:16.36 ID:8p839GFL.net] >>100 冷静に考えると、何でfor(;;)の真ん中の条件式のとこ空欄でも正しい構文になるんだろうね。 for以外に条件式省略できる構文ってないよね?
104 名前:デフォルトの名無しさん [2018/08/21(火) 21:39:06.78 ID:xHZnBR+z.net] if () ができたらなんか嫌だな
105 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 22:56:19.30 ID:7hn0MDmO.net] >>102 確かに…
106 名前:さまよえる蟻人間 mailto:sage [2018/08/21(火) 23:14:00.83 ID:H0lJZ+G5.net] 左右の式が省略できるから、ついでに真ん中の式も省略可能にしたんだろう。
107 名前:デフォルトの名無しさん mailto:sage [2018/08/21(火) 23:18:17.02 ID:mIqstMqN.net] 二つのセミコロンも省略して良いことにしようw
108 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 01:03:40.03 ID:Vm7yolE7.net] ループの話でふと思い出したんだけど、この書き方キモいと思う? LOCK(); while (条件) { UNLOCK(); LOCK(); } UNLOCK();
109 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 01:07:46.55 ID:srSdeWyK.net] きもいけどきもいだけだから必要ならそうする Cだしね
110 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 01:11:58.05 ID:+gfjb8L8.net] condwaitみたいなの、たまに書くと混乱するわ
111 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 01:18:33.81 ID:J6lVaoNe.net] LOCKして、何かして、UNLOCKして解放する わけではないんだ?
112 名前:デフォルトの名無しさん [2018/08/22(水) 02:53:55.25 ID:wb9Zg9xS.net] for (\(^o^)/)
113 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 06:53:07.59 ID:Vm7yolE7.net] >>108 while (条件) で統一したいと思いつつ、この手の場合LOCK, UNLOCKのインデントがズレててキモいなといつも気になってしまう まあどーでも良すぎていつも放置するが >>110 アトミックな条件チェックの話
114 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 07:33:35.95 ID:RPMrdt6N.net] >>112 手動でインライン展開する必要がなければ、普通は、 while (check_func()) { } bool check_func(){ LOCK(); bool retval = XXX; // check something here UNLOCK(); return retval; } とする。 C++なら inline を付ければインライン展開時(元のコード)と似たようなオブジェクトコードが出ることになっている。
115 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 09:35:21.99 ID:ULC6Ul0L.net] >>107 do { LOCK(); UNLOCK(); } while (条件);
116 名前:114 mailto:sage [2018/08/22(水) 09:36:42.99 ID:ULC6Ul0L.net] ごめん、ちがた
117 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 09:52:30.97 ID:2YTphjWh.net] >>107 条件を判断するためだけにLOCK/UNLOCKを行うコードだとしたら最悪のコードだ do { LOCK 判断 UNLOCK if (!判断結果)break; } while (1); 素直にこうしなさい
118 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 11:11:08.70 ID:yAP1ongv.net] 条件判断が目的じゃないと思うぞ
119 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 11:35:04.81 ID:yJL450CM.net] どこが素直なんだ 締め切りが迫ってバグが取れず なりふり構ってらんなくなったやつが書く イカレたコードでしかない
120 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 11:58:31.90 ID:DbwOmzYq.net] >>116 これは酷いw
121 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 12:04:07.83 ID:MGgq/0yt.net] イカれたコードを紹介するぜ
122 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 12:27:28.23 ID:2YTphjWh.net] ん? 一番素直だろうが 条件判断の為だけにLOCKしてるという前提で 判断を関数に分ける? 分けるかどうかはこんなちっぽけな理由で判断するべきじゃないよ 判断の度に関数にしてたら意味不明な関数で溢れるぞ もちろん意味が明瞭で他にも同じ判断を使う可能性があるのであれば 関数やマクロでパッキングすべきだが
123 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 12:36:44.83 ID:yJL450CM.net] LOCK 判断 UNLOCK というアトミックなシーケンスを関数にする理由はちっぽけじゃない LOCK/UNLOCKが必要な具体的な場面を想定しての発言には見えない
124 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 12:50:05.96 ID:2YTphjWh.net] どういう場面かなんて>>107 では判断不能だし 分けるべきか分けないべきかも>>107 では判断不能 判断出来ないのに 「わざわざ関数構成を変えるべき」 なんて主張をすべきじゃない
125 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 13:02:48.20 ID:Xk7aTjF/.net] >>123 いやー、わからんのはあなたに実務もしくは勉強の経験がないからよ
126 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 13:14:18.16 ID:yJL450CM.net] 昨日のvoid func(int ary[100]);にしても ary[1000]を警告する処理系の具体的な例が挙がってないしな
127 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 13:39:37.67 ID:2YTphjWh.net] >>124 わからんねえ エスパーじゃないんだから 経験が少なくて 分けないべき場面が思い浮かばないんだろうねえ
128 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 14:01:43.77 ID:yJL450CM.net] 間違いない、昨日のバカだ NGIDっと
129 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 14:12:07.92 ID:JOaq3c53.net] >>127 そういうあなたは昨日のイキってた方の人?
130 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 14:15:28.00 ID:J6lVaoNe.net] パッと見て何をしているか分からないソースって 後の人が取っても苦労するし、気の毒
131 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 14:19:13.21 ID:J6lVaoNe.net] 多分書いた人の意図は while文内の判定時に LOCKしたいのかとは思うが
132 名前:デフォルトの名無しさん [2018/08/22(水) 14:26:31.81 ID:TfhbroeT.net] while ( ^∀^)
133 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 15:10:17.96 ID:44OVOulF.net] check_func()というアドホックっぽい関数名が誤解のもとかな get条件atomically()にすれば意図が明白
134 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 15:19:38.80 ID:yJL450CM.net] atomicallyって文言いるかねえ いちいち全部につけて回るより LOCK/UNLOCKしてることは 忘れたフリができるほうがいいと思うが
135 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 16:17:52.89 ID:BT6ndhEb.net] 英語圏の人には for (;;) をまとめて熟語的に "forever" と読めて 座りがいいのかも知れん。 カーニハンとパイクの『プログラミング作法』に それに近いようなことが書いてあった。
136 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 16:25:37.12 ID:6OOlmfSC.net] >>133 条件取得の関数がすでにあってそれがアトミックでないケースも想定
137 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 16:31:28.34 ID:UfcjGeQr.net] >>134 なるほどforeverか そういう風にも読めるな
138 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 16:44:34.35 ID:AU3mefLA.net] >>134 そう言われると確かに座りが良いかもしれんが、(;;)をeverと読むのか。。。 今の時代では顔文字の失敗作にしか見えんなw
139 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 16:54:07.40 ID:yJL450CM.net] >>134 #define ever (;;) とかやんの? だったら #define forever for (;;) のほうがマシだと思う >>135 空想論なら付き合ってらんねえぜ
140 名前:134 mailto:sage [2018/08/22(水) 17:01:35.42 ID:BT6ndhEb.net] 「その部分のループ、終了条件が色々なんでとりあえず for (;;) で回して」 みたいな口答でのやりとりで for (;;) を forever と読めば手っ取り早いでしょ。 while (1) で…よりも言いやすいんじゃないかと。 これは空想論だけどね。
141 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 17:28:26.65 ID:yJL450CM.net] 無限ループで済むことを forの第2式を空欄で なんて回りくどい言い方しねえよ
142 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 17:52:35.43 ID:l5cdWJfA.net] >>140 別に回りくどくないし 良く見るコードだよ いろんな人のコードを見たりしないの? みんないろんなポリシーでいろんなコードを書くから いろんな書き方を知っていた方が良いよ
143 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 17:59:10.07 ID:l5cdWJfA.net] while (条件) でしかループが組めないのはちょっとさみしい 無理やりこの形にするために >>107 みたいな意味不明なコードになる
144 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 18:07:38.93 ID:yJL450CM.net] >>141 口頭でのやり取りつってんだろ 流れを読めよ
145 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 18:22:36.66 ID:PnEe4J3b.net] マウント取りたくて必死なアスペだから仕方ない
146 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 18:30:03.99 ID:l5cdWJfA.net] 口頭で forの第2式を空欄で なんて発想は出て来なかった
147 名前:デフォルトの名無しさん [2018/08/22(水) 20:52:31.01 ID:ROURn6Ut.net] for ( ;∀;)
148 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 21:21:35.96 ID:yJL450CM.net] > while (条件)でしかループが組めないのはちょっとさみしい ここは同意 while(1) であろうが for(;;) であろうが同じこと どっちかが好みで他方で書かれたからって可読性が落ちたとか騒ぐ 救いようのないドアホには付き合ってらんね それだけだ
149 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 21:23:43.06 ID:82KbBjx+.net] >>116 を認めないお前も同じようなものかと
150 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 21:26:52.07 ID:MwkxeX8r.net] whileで無限ループする場合、0じゃなければ1以外を 使ってもいいわけだがどうする? 電話番号とか使えばオシャレかもしれないよ
151 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 21:27:18.15 ID:JglTnHlJ.net] とりあえず、おかしなのに絡まれた >>134 に同情を禁じ得ない。
152 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 21:28:19.40 ID:yJL450CM.net] 別にiocccのコードが読めろとか言ってない int *aryがint ary[100]じゃなきゃ読めないとかぬかしたり while(1)がfor(;;)じゃなきゃ読めないとかぬかす 想像を絶するアホには付き合ってらんねつってるだけ lock/doit/unlockを関数化する必要性がわからないアホも含まれる
153 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 21:33:30.14 ID:Jjipv9/i.net] >>151 「じゃなきゃ読めない」ってどこかに書いてたっけ? そんな気はしてたが、やっぱり日本語不自由な人だったらしい。
154 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 21:42:00.39 ID:yJL450CM.net] じゃあ喚くのやめろ うるせえんだよ
155 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 21:43:08.30 ID:Jjipv9/i.net] >>153 やっぱり日本語不自由な人なんだw
156 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 21:51:19.93 ID:Vzjpb7lE.net] 何がじゃあなのかわからない 思考がbool値しかないのか
157 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 21:51:23.19 ID:wgajpaTM.net] アトミックな操作の意味がわかってたらああはならんのですよ
158 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 21:52:48.42 ID:Vzjpb7lE.net] 世の糞コードのほとんどはコミュニケーションの失敗により発生する
159 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 21:54:35.09 ID:Jjipv9/i.net] C言語以前に日本語もちゃんと理解できない人と議論が噛み合うわけない。 相手しただけ損したわ、アホらしい。
160 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 22:02:56.29 ID:yJL450CM.net] 勝手に損してろ 誰にも賠償請求できない 泣き寝入りだな アホw バカwww
161 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 22:05:01.83 ID:Jjipv9/i.net] はいはい、ちゃんとにほんごをべんきょうしてりかいできるようになってから、かきこんでくださいね。
162 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 22:13:51.56 ID:RPMrdt6N.net] まあ概ね ID:yJL450CM が言っていることは正しい。 >>107 のコードは、かなり特殊で、普通はあり得ない。 キモイかと問われれば、キモイと答えるのが正しい。 (必要ならやればいいが) >>116 それはdo-whileの標準的使い方とは異なるので、混乱を招く。 >>132 check_func()は、107を書き直した場所がすぐに分かる名前にしただけ。 実際、問題なく伝わってるだろ。 本番コードでこの名前はあり得ない。名前が被るから。 ただ、正直、こんなどうでもいいところで拘るのは止めた方がいい。上達しなくなる。 どれでもいいから自分が好きなのを選び、グダグダ言わずにどんどん書いた方がいい。 なお、Goにはwhileが無い。廃止されて、forだけになっている。 ちなみに、俺は 固定長ループ(単純ループ): for … for (int i=0;i<num;i++) 程度の簡単な場合は常にこれ 可変長ループ(複雑なループ): while 無限ループ: while (1) do-while: 使わない にしているが、正直、ここら辺は好みだし、自分がどう決めるかだけ。(上記は標準的だとも思っているが) それよりは、自分の中で統一するほうが重要だ。 (少なくとも自分が書いたコードを読むときに混乱しなくなる) 業務なら、グダグダ言わずコーディングルールに従えばいい。 場所によってはwhileとforのどちらかが禁止とかもある。(どっちかは忘れた) 理由はバグって無限ループにしてしまったときにコード上から判定しづらいとかだったはず。
163 名前:107 mailto:sage [2018/08/22(水) 22:19:27.48 ID:Vm7yolE7.net] 非常にくだらない質問にレス付けてくれてサンクス なんか荒れる原因つくってスマンかった やっぱりあの書き方きめえよなあ・・・
164 名前:デフォルトの名無しさん mailto:sage [2018/08/22(水) 22:57:41.03 ID:RPMrdt6N.net] >>112 > LOCK, UNLOCKのインデントがズレててキモい これは諦めろ。 酷い話、インデントがぴったり合ってないと駄目な奴はプログラマに向いてない。 どうやってもずれるからだ。 googleのコーディングルールにも昔は ・インデントを揃える努力は、キリがないしやるだけ無駄だから諦めろ と書いてあったはず。(今見る限りないが) ちなみにキモイ理由は、インデントではなくて、完全に入れ子になっていないからだ。 最近はこの「入れ子」の厳密さも増していて、XML(HTML等)では入れ子しか文法的に認めないだろ。 例えば、 <while> </while> ならありだが、 <lock> <while> </lock> </while> は駄目で、 <while> <lock> </lock> </while> にしなければならない。