より適切なプログラミングを目指して
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
-
技術文書・技術解説
[SAS Institute Japan株式会社] 生成AIを予知保全に組み込むことで「産業設備保全」はどこまで進化できるのか -
市場調査・トレンド
[SAS Institute Japan株式会社] 製造企業が「AIによる価値創出」を迅速に実現する方法 -
技術文書・技術解説
[株式会社日立ソリューションズ] 開発と運用の分断を解消、実践知に基づくプラットフォームエンジニアリングとは -
事例
[株式会社日立ソリューションズ] 開発・運用の属人化をどう打破した? 日立ソリューションズの実践事例 -
技術文書・技術解説
[Eleven Labs Japan合同会社] 問い合わせ解決単価を約9割削減する試算も 音声AIエージェントのROIと活用例
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
Microsoft 365統一で「SharePoint」が1日2TB増 富士フイルムはどう管理した?
-
2
なぜ「WSUS」を捨てない? 非推奨でも35%が使い続けるワケ
-
3
なぜMicrosoftは「Rust」を標準言語に? AIで進むC/C++書き換えの課題
-
4
8割がアナログに逆戻りする“やっぱりな理由” DXを阻む2つの落とし穴
-
5
なぜ「Microsoft Teams」がランサムウェアの入り口になるのか?
-
6
「オフィス移転・刷新に伴うネットワーク環境の実態」に関するアンケート
-
7
なぜ「Claude Code」拡張は消しても危ないのか? Cursorで不正版配信
-
8
「法人向けPCおよび周辺機器の利用状況」に関するアンケート
-
9
毎日2時間の“無駄”を生む「紙とExcel」管理 田中精密工業はどう脱却したのか
-
10
「PC導入および現在のハイブリッドワークの課題」に関するアンケート
ホワイトペーパーランキング PR
-
1
「IT史に名を残すシステム障害」8選
-
2
AIが苦手な「汚いデータ」になっていない? AI投資を無駄にしないための注意点
-
3
急増する高度なフィッシング詐欺 先回りしてブロックするには何が必要?
-
4
法人向け光回線のプランはどう選ぶ? 機能面/保守体制/コストを一覧で比較
-
5
「テスト内製化&自動化」事例集:ディー・エヌ・エーなど9社に学ぶ実践のコツ
-
6
Microsoft 365のメールセキュリティ、3つの“死角”と追加で検討すべき対策とは
-
7
有識者が語る、中堅中小企業に求められる最新のサイバーセキュリティ対策とは
-
8
10G回線の真価をフルに享受するには? 導入前にチェックしたいポイント
-
9
なぜRPA導入は頓挫する? シナリオ作成の壁を乗り越える解決策とは
-
10
進化が遅れる「電話」をアップデート、AIを搭載した次世代の通話機能とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー