より適切なプログラミングを目指して
Javaのプロが避ける「波かっこ」の“駄目”な使い方とは?
「Java」や「C++」をはじめ、さまざまなプログラミング言語で大きな役割を果たす要素が「波かっこ」だ。一般的なIDEの設定を踏まえて、好ましい波かっこの使い方を理解しよう。
プログラミング言語には根本的な共通点がある。一般的に、
- 変数宣言
- 条件式
- 関数
という3つの要素から成ることだ。条件式を評価して、その結果に応じて演算する関数の集合体がソースコードになる。
どのようなプログラミング言語でも、こうした基本的な考え方に変わりはない。処理の集合としてソースコード全体を記述する「手続き型」か、データと処理(メソッド)をまとめて定義した「オブジェクト」を組み合わせる「オブジェクト指向型」かにかかわらず、プログラミング言語に共通した考え方だと言える。
プログラミング言語によって大きく違うのが、「波かっこ」(「ブレース」「中かっこ」とも)の使い方だ。
そもそも「波かっこ」は何のためにあるのか
併せて読みたいお薦め記事
プログラミング学習のヒント
さまざまなプログラミング言語
プログラミング言語によって、ループや条件分岐といった構文の開始点と終了点を示す方法は異なる。例えば「Java」や「C++」は、コードブロック(処理のまとまり)の開始と終了を定義するのに波かっこを使う。以下にJavaソースコードの例(特にプログラミング初心者が記載しがちな例)を示す。
public void flagTest()
{
boolean flag = true;
int i = 10;
if (flag == true)
{
for (int i = 0; i < 10; i++)
{
System.out.print("flag is true");
}
}
flag = false;
}
波かっこを用いる主なプログラミング言語10個
プログラミング言語で波かっこを初めて用いたのは、1966年に開発された「BCPL」(Basic Combined Programming Language)までさかのぼる。BCPLは「C」やその後継のC++に影響を与えた。CとC++はJavaに影響を与え、Javaプログラムを実行する「Java仮想マシン」(JVM)で動くプログラムのためのプログラミング言語(「JVM言語」と呼ばれる)が、波かっこを取り入れている。
コードブロックを示すために波かっこを使用する主なプログラミング言語には以下がある。
- Java
- C++
- JavaScript
- Rust
- Groovy
- Kotlin
- Perl
- PHP
- Scala
- Swift
これに対して「Python」など一部のプログラミング言語は、波かっこの代わりにインデントと改行を使ってコードブロックを示す。
“良い”波かっこの使い方
経験が浅く、プログラミングで波かっこを使い慣れていないエンジニアは、先述の例のように改行して行頭に左波かっこを置き、その行に他の要素を記述せず、すぐに改行するのを好む傾向にある。初学者にとっては、この改行によって構造化されたソースコードの方が理解しやすい場合が少なくない。コードブロックの開始点と終了点が改行によって明示的になっているからだ。
一方で経験を積んだエンジニアが取るアプローチは、コードブロックの開始行の末尾に左波かっこを置くというものだ。「Eclipse IDE」「NetBeans IDE」「IntelliJ IDEA」といったJava向けIDE(統合開発環境)は、この記述方法をコード整形機能が従う標準設定として採用している。上述のソースコードを一般的なコードレビューに合格させるには、次のように整形する必要があるだろう(「flag == true」ではなく「flag」と書くべきだという意見もある)。
public void flagTest() {
boolean flag = true;
int i = 10;
if (flag == true) {
for (int i = 0; i < 10; i++) {
System.out.print("flag is true");
}
}
flag = false;
}
ソースコードの見た目を整えるためのスペース、タブ、改行は、ソースコードの構文を解析してコンピュータが解釈可能な形式に変換するコンパイルには影響しない。重要なのは波かっこが存在しているかどうか、適切に使われているかどうかだ。これは「全ての左波かっこに対応する右波かっこが存在するかどうか」と同義だと言える。
新人エンジニアが波かっこの前後にスペースを挿入し過ぎたり、1行に左波かっこのみを記述したりすれば、経験不足をさらすことになる。それだけでなく、非常識な記述方法で開発チーム内の他のエンジニアからひんしゅくを買うことにもなりかねない。
TechTarget発 先取りITトレンド
米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
TechTarget発 先取りITトレンド
米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[株式会社MatrixFlow] 「物流リソース最適化」ガイド:人員・配車・傭車を出庫依頼の確定前に決めきる -
製品資料
[株式会社キーエンス] なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは -
製品資料
[株式会社セールスフォース・ジャパン] 「CRMは設計と無関係」は本当か? PLMとの融合で実現する高速開発 -
事例
[日本ヒューレット・パッカード合同会社] AIエージェントの時代にどう備える? 「新たな働き手」を支える3要素とは -
製品資料
[日本ヒューレット・パッカード合同会社] “横並びの自動化”から脱却、AI活用で生産性と競争力を高める秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
なぜ「全社配布Copilot」は使われないのか? 失敗に学ぶAI定着
-
2
法務と開発者で「言葉が通じない」問題 トヨタやソニーが語るOSS管理の真実
-
3
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
4
損保ジャパンはなぜ「COBOL」を捨てなかったのか? 脱メインフレームの真相
-
5
情シスの約8割が転職や退職を意識 調査で分かった“辞めたくなる最大の理由”
-
6
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
7
情報漏えいはなぜ繰り返されるのか 今すぐ見直すべき「境界」
-
8
「Wi-Fi 7」経由でWindowsが乗っ取られる? 最高権限奪取の恐怖
-
9
「結局使わなくなる」Microsoft 365 Copilotを半年で定着 キリンの3施策
-
10
「中堅・中小企業のネットワーク・セキュリティ運用実態」に関するアンケート
ホワイトペーパーランキング PR
-
1
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
2
家庭用Wi-Fiルーターの業務利用は危険? 避けるべき理由と具体的な対策
-
3
Microsoft 365を安全に運用 うっかりミスやサイバー攻撃に備えるデータ保護術
-
4
財務部門がAIを最大限に活用する方法 無駄のない戦略的リーダーシップへの道
-
5
LLMが兵器化? 元FBI高官が鳴らす警鐘とセキュリティツール統合のポイント
-
6
「オンプレミス回帰」せざるを得ない“合理的な理由”
-
7
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
8
生成AIを開発に導入しても効果が見えない? 実証実験で分かった成果と課題
-
9
経産省DX指針から読み解く、受発注業務デジタル化ロードマップ
-
10
HDDを使わない「SSDオンリー」が無謀なのはなぜ?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー