Javaのインクリメント・デクリメント演算子で知っておくべき重要なポイント
Javaのインクリメント演算子(++)とデクリメント演算子(--)には、意外と知られていない興味深い仕様がいくつか存在します。本記事では、代表的な2つのポイントをサンプルコードとともにわかりやすく解説します。
1. final変数にはインクリメント・デクリメント演算子が使えない
finalキーワードを付けた変数は、一度値を代入すると変更できません。そのため、インクリメントやデクリメントといった値を書き換える操作を適用すると、コンパイルエラーが発生します。
コード例
public class Demo{
public static void main(String[] args){
final int my_val = 34;
int my_val_2 = ++my_val;
System.out.println("The value is :");
System.out.println(my_val_2);
}
}
実行結果(コンパイルエラー)
/Demo.java:6: error: cannot assign a value to final variable my_val
int my_val_2 = ++my_val;
^
1 error
このように「final変数 my_val に値を代入できない」というエラーが出力されます。インクリメント演算は内部的に変数への再代入を伴うため、final修飾子との組み合わせは許されないのです。
2. インクリメント・デクリメント演算子のネスト(入れ子)は不可
++や--を重ねて記述すること、つまり++(++x)のような入れ子構造はJavaでは許されていません。これは、前置インクリメントの結果が「変数」ではなく「値」として扱われるためです。演算子の適用対象には変数が必要ですが、値に対してさらに演算子を適用することはできないのです。
コード例
public class Demo{
public static void main(String[] args){
int my_val_1 = 99;
int my_val_2 = ++(++my_val_1);
System.out.println("The value is ");
System.out.println(my_val_2);
}
}
実行結果(コンパイルエラー)
/Demo.java:6: error: unexpected type
int my_val_2 = ++(++my_val_1);
^
required: variable
found: value
1 error
エラーメッセージにある「required: variable / found: value」は、「変数が必要な箇所に値が渡された」ことを意味しています。つまり、内側の++my_val_1が評価された時点で結果は値になり、外側の++が適用できる対象ではなくなるため、コンパイルに失敗します。
まとめ
Javaのインクリメント・デクリメント演算子を使う際は、以下の2点に注意しましょう。
- final変数には使用できない:値の書き換えが禁止されているため、コンパイルエラーになる。
- ネストして使用できない:
++(++x)のような記述は、演算対象が変数ではなく値になるため不可。
これらの仕様を理解しておくことで、意図しないコンパイルエラーを防ぎ、より安全で可読性の高いコードを書くことができます。
-
知って驚く!バイオテクノロジーの興味深い事実21選
前回のバイオテクノロジーに関する記事では、バイオテクノロジーとは何か、そしてこれまでの歩みの中で達成されてきたマイルストーンについてご紹介しました。おさらいすると、バイオテクノロジーとは、生物学的な生命体を実用的・産業的に応用する技術を研究する分野です。この技術は主に農業、医療、非食料農業、環境分野で活用されています。 あらゆる技術には、それにまつわる驚きの事実が隠されています。バイオテクノロジーも例外ではありません。思わず目を見開いてしまうような事実の数々を、今回はご紹介します。 バイオテクノロジーの驚きの事実21選 1. バイオテクノロジーには4つの「色」がある 少し奇妙に聞こえるかもしれ
-
知られざるビットコインの驚きの事実9選|サトシ・ナカモトの謎からFBIの保有額まで
ネット上には、技術的な解説から面白い雑学まで、ビットコインに関する記事が数多く存在します。今回は、あまり知られていないビットコインの興味深い事実を9つ厳選してご紹介します。それでは早速、順番に見ていきましょう。 1. 本物のサトシ・ナカモトは誰なのか? 「サトシ・ナカモト」という名前には、今なお厚い秘密のベールがかけられています。このペンネームの裏にいる本当の人物が誰なのか、誰も確かなことを知りません。初期のホワイトペーパーが公開された時間帯、文章のスタイル、書かれたコードの特徴などを分析し、その出自の手がかりを探る調査が続けられてきました。ビットコイン、ひいてはそれを支えるブロックチェーン