より適切なプログラミングを目指して
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
-
製品資料
[株式会社ビザスク] 製造業の新事業創出 成功の鍵は「タラレバ問題克服」と「3つの判断ポイント」 -
製品資料
[日本シーゲイト株式会社] 実験のやり直しを防止 研究データ基盤に求められる高可用性ストレージとは -
製品資料
[株式会社Leaner Technologies] もっと安く買えるのに…… 間接材購買で“コスト削減機会”を逃さないためには -
製品資料
[株式会社セールスフォース・ジャパン] フィールドサービスの熟練技術者が「AIエージェント」を求めている理由 -
製品資料
[株式会社グリーンフィールド・オーバーシーズ・アシスタンス] 基礎から分かる「就労ビザ」 アメリカ進出を目指すなら知っておきたい取得戦略
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
脱VMwareか、継続か? 仮想化ソフト主要6製品の機能とスペックを徹底比較
-
2
AIが本番環境を削除し復旧に13時間 「暴走」ではなかったAWS事例
-
3
レガシー基幹システムをSAPに統合 山善が突き止めた「標準化と個別最適」の境界線
-
4
「HDD終了」は本当か 巨大クラウド2社が下した大容量フラッシュへの決断
-
5
年収700万超エンジニアに共通するスキルと「もっと勉強すべきだった分野」
-
6
IT人材の42%が転職予備軍 辞めさせない組織の4つの共通
-
7
なぜ情シスは評価されにくい? 読者調査で見えた「成果が見えない仕事」第1位は
-
8
「WSUS」終了の時限爆弾 “本命”移行先ツールとMicrosoft提唱の新管理手法
-
9
Microsoft 365の知られざる5つの裏口 パスワードを変えても攻撃者は消えない
-
10
DX導入企業の3割超がむしろ「負担増」 9割が陥る“内製化のわな”
ホワイトペーパーランキング PR
-
1
登録セキスぺが語る「SCS評価制度」の舞台裏 星を取得すべき理由と対応のコツ
-
2
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
3
月1000枚の紙を削減 9年動けなかった組織が、業務改革のその先に得たもの
-
4
OSSでは困難 100超のサービスを持つマネーフォワードが実践した統合監視術
-
5
ネットワーク遅延の原因、「パケットロス」の基礎知識と効果的な解決策
-
6
「改正物流効率化法対策」徹底解説 総物流費を抑制するサプライチェーン戦略
-
7
ドラマで分かる、標的型攻撃メールの被害を受ける企業と回避できる企業の分岐点
-
8
Windows PCとMacの選択制で生産性向上 LINEヤフーが実践する運用管理方法とは
-
9
「人員を増やす」という選択肢はない 情シスが負の連鎖から抜け出すには?
-
10
「Google Workspace」活用事例34選、先進の生成AIによる組織変革の全貌
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー