より適切なプログラミングを目指して
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製品導入事例などを厳選してお届けします。
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
2
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
3
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
4
221人調査で分かった「情シス最大のストレス」は?
-
5
「データストレージの活用方法」に関するアンケート
-
6
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
7
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
-
8
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
9
本当に安いPCで十分か? “すぐ重くなる”を防ぐノートPC選びの絶対条件
-
10
Claudeの不可視透かしに批判殺到 著作権消失や誤判定に潜む企業リスク
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー