単一ステートメントに波括弧を使うべきかどうかについて、激しい議論が交わされています。
C++、C#、Java、JavaScriptでは、波括弧のない単一行ステートメントは有効です。この機能を活用する人もいれば、そうでない人もいます。
例えば
if(ifTrue)
MowTheLawn();
for(var index; index > 10; index++)
ChopWood();
foreach(var dollar in money)
BuyLollipop();
while(untilTheEnd)
Read();
単一行の波括弧に反対する議論
波括弧に反対する議論は、より簡潔な構文であり、入力する文字数が少なく、有効な構文だということです。なぜこの機能を活用しないのでしょうか?
単一行の波括弧に賛成する議論
波括弧に賛成する議論は、一貫性があり、バグが少なく、精神的に解析しやすいということです。
Jon Abramsが執筆したSingle-line ‘if’ statementsという記事では、Jonは波括弧のない単一行ifステートメントの結果として、Appleの TLS実装に欠陥がどのように導入されたかを説明しています。Jonは、単一行ステートメントで波括弧を省略することはより簡潔ですが、欠陥を防ぐことが簡潔性よりも重要であると述べています。
Jonは妥協案を提案しており、ステートメントが本当に単一行である場合は、単一行ステートメントを許可することです:
if(ifTrue) MowTheLawn();
私はJonの考えに同意します。単一行で波括弧を省略することは、それが提供する利点に値しません。ソフトウェアエンジニアに有効な構文の2つのバリエーションを検討することを強制します。それほど悪くないように見えるかもしれませんが、ifステートメントに遭遇するたびにこの判断を下すことは負担になります。次の効果は、エンジニアが数回のキーストロークを節約し、その負担を将来の読者に渡して彼らのコードを解析させることです。
C#ソフトウェアエンジニアの場合、Microsoftは彼らのコーディング規約で波括弧を呼び出す側に立っています。
すべての場合に波括弧を使用する場合、行数に関係なく、スコープ内にあるものとスコープ外にあるものは非常に明確です。これにより、コードはエラーが少なく、より一貫性があります。ただし、この点を議論する人もいるかもしれませんが、私はそれをより読みやすいと思います。
Author: Chuck Conway is an AI Engineer with nearly 30 years of software engineering experience. He builds practical AI systems—content pipelines, infrastructure agents, and tools that solve real problems—and shares what he’s learning along the way. Connect with him on social media: X (@chuckconway) or visit him on YouTube and on SubStack.
著者: Chuck Conwayは、ソフトウェアエンジニアリングの経験が30年近くあるAIエンジニアです。彼は実用的なAIシステム(コンテンツパイプライン、インフラストラクチャエージェント、実際の問題を解決するツール)を構築し、学んだことを共有しています。ソーシャルメディアで彼とつながってください: X (@chuckconway) または YouTube と SubStack で彼を訪問してください。