No.6ベストアンサー
- 回答日時:
前にも書いたようにdo-whileを禁止する理由はどう考えても見当たりません。
逆に規約の有無に関わらず、問答無用で禁止なのは、振る舞いが未定義や不定になるものです。処理系定義のものは(なるべく避けるべきですが)状況次第では許容されるでしょう。
動作が未定義になるもので、意外にやってしまいがちなのは、
・空でないソースの最後が改行で終わっていない(ISO/IEC 9899:1999 5.1.1.2)
・下線で始まるマクロを定義してしまう(同 7.1.3)
といったものがあります。
後は、なるべく一貫性のあるコーディングをすることが大切ですね。書式だけでなく、命名方法まで含めて。
御回答ありがとうございます。
未定義や不定動作、確かに問題ですね。
gotoが禁止される理由は可読性だけではないと感じました。
御指摘の2点、後学の参考にさせて頂きます。
どうもありがとうございました。
No.8
- 回答日時:
ループの中に入るときに、処理するパラメータが不定のままの可能性があるならばよろしくないでしょうね。
かならず一回はループしてしまうわけですから。
可読性よりも重要かと。
私の場合は、ループに入る前に例外を除外してから処理するようにしてます。そのほうがループ内の処理が短縮できるから。だって、for/whileだろうが余計なif文が100万回(例えばね)ループすると思うといやです。
御回答ありがとうございます。
確かに、通常のフローよりもループの方が不定パラメータの問題は大きそうですね。
それを一々ソースの中でチェックする手間が余計だという観点で
禁止されているのかもしれません。
頂いた御意見を参考に、自分なりにもう少し考えてみようと思います。
どうもありがとうございました。
No.5
- 回答日時:
Do-whileは禁止しなくてもいいとおもうけど・・・
もちろん、流れ的にwhileが適当なら無理にdo-whileを
使う必要は無いと思いますが・・・
あと、盲目的に禁止してしまうのがgotoですが、
なぜ禁止かというと、プログラムの流れが複雑になる。
というのが大方の理由かと思います。
まぁ、たいてい有無を言わさず禁止するでしょうけど。
しかし、私は流れを簡略化するgotoはOKな考えで、
多重にネストが掛かった最内から、一番外のネストからの脱出のみ使用可としています。
条件分岐使ってbreakの繰り返しは見るのもいやなんで・・・
でも、一度もそんなコードになったことは無いですが(笑
いずれにせよ、流れが読みやすいのであれば、問題は無いはずです。
ただ、プロジェクト自体の規約があるので、なんでもかんでもといのは無理でしょうけど。
御回答ありがとうございます。
私は多重ネストからのbreakは苦にしないのですが、
確かにあまり見栄えの良いものではありませんね。
gotoに関しては、例外処理でたまにお世話になるかな、という程度のことは考えていました。
以前読んだ解説書にも、例外処理ならばgotoが適当な場面があると解説されていましたので…
No.4
- 回答日時:
コーディング規約とはローカルなもので、そのプロジェクトのリーダーさんが決めるわけですから、従わなければなりません。
理由はリーダーさんに聞くべきです。もっとも、コーディング規約というものは、見直しもされずに機械的にコピーが配布される悪い面があり、正しくはプロジェクトごとに規約の一つ一つを見直してから修正を加えて配布すべきです。
一般には使用を禁止する筋合いのものではなく、規約に載っていなくても、禁止すべきは"goto"文でしょう。
御回答ありがとうございます。
私もリーダーに問い合わせてみたのですが、
以前のプロジェクトからそのまま引っ張ってきた規約らしく、
本人もよく理由が分かっていないようでした。
gotoのような一方通行の制御については、
直感的に「やらないほうがいい」と理解できるのですが、
do-whileは別に一方通行でもなんでもありませんよね…
No.3
- 回答日時:
No.2のTT414です
>No.1の方に賛成です。
>do
「do」以下の文章の文章は「No.1の方に賛成です。」の文章の説明ではありません、「No.1の方に賛成です。」の内容とは別の意味の追加意見です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Visual Basic(VBA) ExcelVBA No.を自動連番で設定をしながらデータ入力をしたい 2 2022/08/03 18:19
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- 英語 Once it is anticipated that the possibility of a b 1 2023/03/04 09:14
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) Excel VBA マクロ ブロック崩しのコードについて。 1 2022/06/22 12:33
- 英語 (前文)-turning up the volume on the bicycle trend wh 1 2023/02/08 15:57
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
C言語で、メモリを解放しないで終わるプログラム
C言語・C++・C#
-
初級者の質問――time_tについて
C言語・C++・C#
-
変数名の付け方
Java
-
-
4
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
5
LINK : fatal error LNK1104について
C言語・C++・C#
-
6
String^の^自体が何を意味しているのか、わかりません。
C言語・C++・C#
-
7
#defineの定数を文字列として読み込む
C言語・C++・C#
-
8
VB.NET DataGridView 縦スクロールバーを常に表示
Visual Basic(VBA)
-
9
txtファイル内の指定の単語の数を数えたいのですが何か方法はありますか
その他(パソコン・スマホ・電化製品)
-
10
関数内の変数に<summary>コメントを付けたい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
入力した文字列から母音だけを...
-
break文でループを一気に抜ける...
-
do-while文が禁止される理由
-
strtokを使用したループ内でのs...
-
ループを途中で抜けたいのですが。
-
if文の中にfor文なのか、for文...
-
文字列を後ろから1文字ずつ表示...
-
COBOLのEVALUATE文
-
エクセルVBAで Do While (1)って?
-
While文の終わりにセミコロンが...
-
Matlabを使った心理学実験
-
Delphiで・・・
-
プログラムのmatlabを使ってい...
-
H8/3048マイコンAD/DA変換について
-
C++ DirectX カーソルの移動処...
-
getchar()の記述
-
ループが回らない
-
ゲームオーバーのプログラム
-
PIC のプログラムについて ど...
-
for文while文の無限ループの違...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
do-while文が禁止される理由
-
break文でループを一気に抜ける...
-
エクセルでC言語のfor文と同じ...
-
ループを途中で抜けたいのですが。
-
エクセルVBAで Do While (1)って?
-
C言語forループが完結した場合...
-
For文の終了値を関数にしても問...
-
excel VBA if文について
-
入力した数値を倍々するプログラム
-
入力した文字列から母音だけを...
-
Excel VBAで年度をまたぐ期間の...
-
if文の中にfor文なのか、for文...
-
C言語、whileループを抜け出す...
-
for文while文の無限ループの違...
-
UWSCにてある一定の動作を無限...
-
__asm int 3でのブレイクポイン...
-
PIC のプログラムについて ど...
-
他言語で言うcontinue文
-
Cプログラムが終了しない
-
プログラムで関数は使わない方...
おすすめ情報