本頁では、式[評価式](expressions)、命令文[ステートメント](statements)、ブロック(blocks)に関する基本構文に関して、説明します。
尚クラスの全体の骨格について、Javaの構文でクラスの骨格について説明しています。
値を計算する式[評価式]を構築するために演算子を利用します。式[評価式]は、命令文の主要な構文です。
ブロックは、命令文をグループ化するための構文です。
式は、Javaの言語仕様における構文で構成された変数、演算子、メソッド呼び出しで記載され、処理結果として単一の値に評価されます。
単一の値は、プリミティブ型やStringに代表されるオブジェクト型に評価されます。
OperatorsSample.javaより抜粋
int x = 10;
int y = 3;
String a = new String( "日本の" );
String b = new String( "おもてなし" );
System.out.println( "x * y =" + multiple( x , y ) );
System.out.println( "a + b =" + concat( a , b ) );
変数定義部の x , y , a, b とその初期設定は1行で評価式です。他の評価式がないため、評価式1行が命令文に該当しています。
メソッドmultipule( x , y ) が評価式の1つに該当し、"文字列" + multipule( x , y ) の結果が2つ目の評価式に該当します。
System.out.println( "x * y =" + multiple( x , y ) );
1行全てが命令文に該当します。
式サンプル
areaTrapezoid = bottom + top * hight / 2;
この評価式は、どうやら台形の面積を求める計算式を処理させようとしているのが変数名から判断できます。
但し、演算子の評価順から判断すると間違った計算をしています。
これを改修して、次のように半角英字カッコ()
で評価式の評価順を変更します。
改善したサンプル
areaTrapezoid = ( ( bottom + top ) * hight ) / 2;
このように評価式を纏める()によって、()内の評価式が優先的に評価されます。
また評価式の優先順位が処理内容の意図とする内容と合致していても、
人が理解できる意味ある評価式にするために ()を適切に付与します。
;
処理内容の最後に「;」(半角セミコロン)で定義します。
1行または複数行で記載された処理要求を命令文と呼びます。Javaプログラムでは「ステートメント」と呼びます。
ステートメントには、変数の宣言、インクリメント・ディクリメント、評価式の計算、オブジェクトの生成、メソッドの実行などです。
ステートメントは、複数行でも1行でも「;」の記述によって1つのステートメントとして解釈されます。
前項で記載しサンプルでは、6個のステートメントがあると解釈されます。
{
クラスのメソッド等 }
{
メソッドの処理 }
{
条件節の処理 }
このようにブロックは、ブロック定義直前のクラス宣言、メソッド宣言、条件節などの処理範囲を定義します。
ブロック内では、1~複数のステートメントで処理内容を記述します。
サンプルOperatorsSampleの抜粋
public class OperatorsSample {
//その他宣言、メソッド割愛
//コメント割愛
private int calc(boolean isAdd , int x , int y ) {
int result = 0;
if( isAdd ) {
result = x + y;
} else {
result = x - y;
}
return result;
}
}
重要上記例のように {
のブロック開始直後にステートメントは記載していません。
好ましくない例
public class OperatorsSample {
//その他宣言、メソッド割愛
//コメント割愛
private int calc(boolean isAdd , int x , int y ) {
int result = 0;
if( isAdd ) { result = x + y; }
else { result = x - y; }
return result;
}
}
可読性が落ち、スキルに依存したソースファイルになりました。チームで開発する際にバグを生み易い構造です。
本サイト「コーディング規約」に電通国際情報サービス様が取り纏めた
コーデイング規約をダウンロードできるようにしています。そちらの内容にも記載されていますのでご確認下さい。