1学期第10週
テーマ:文
(96.11.10:更新)

文の基本
- 文は、原則として記述した順番に実行されます。
- 文は、;(セミコロン)で終ります。
ラベル付き文
- プログラムの任意の位置にラベルを付けることができます。
- ラベルは、break文やcontinue文で用いられます。(後述します)
- ラベル名は、そのブロック内のみで有効です。
- 既にローカル変数、ラベル、仮引数の変数に利用した名称は使えません。
式文
- 式に続けて;を書きます。
- 例えば「a=1」や「System.out.print("HelloWorld\n")」などの
『式』に「;」を付けたものです。プログラムのほとんどは式文です。
ブロック
- ブロックは『{』と『}』で囲んだものです。
- 例えば if文の、
if ( 式 ) 文1 else 文2
などで、文1や文2が1つの文で表せない時、『{』と『}』で囲んで中に複数の文を書けば、全体を1つの文として扱うということです。
- ブロックは、一連のローカル変数と文から成ります。
- 同一条件で同一回数実行される文の集合であり、ロジカル・シーケンスとも呼ばれます。
変数定義文
- ローカル変数は、そのブロックの中だけで有効な変数です。
- 同じブロック内で使用された変数、ラベル、仮引数などの名称は使えません。
- クラスの変数やメソッドの名前をローカル変数に使うと、その名前でアクセスできるのはローカル変数となります。
- クラスの変数やメソッドをアクセスしたいときは、thisを用います。

制御文
if文
while文
- 条件式はブール型のみです。
- 最初の条件式がfaultであれば、処理は一度も実行されません。
- 処理を実行した後に条件式を評価し、式の値がfaultになるまで繰り返します。
do文
- 条件式はブール型のみです。
- 処理を実行した後で条件式を評価し、trueであれば処理を繰り返します。
- 最初の条件式の評価がfaultであれば、処理は一度だけ実行されます。
for文
- 初期化式はどのような式でも記述できます。
- 条件式の型はブール型のみです。(省略した場合はtrueとみなします)
- 増加式は、繰り返し毎に変化させたい式を記述します。
switch文
switch(式){
case 値1:
case 値2:
.....
default:
}
|
- 式の型は、char型、byte型、short型、int型のいずれかを使います。
- caseはいくつでもいいですが、同じものがあってはいけません。
- 式を評価してその値と等しいcaseの処理を実行します。
- 該当するcaseがない場合は、defaultの処理を実行します。
- 該当するcaseがない時に何も実行しない場合にはdefaultを省略できます。
- caseの最後にbreakがなければ、そのまま次のcaseの処理を実行します。
break文
- ラベルをつけない場合は、最も内側のfor,while,do,switch文の外に制御が移ります。
- ラベルをつけると、ラベルの文の外に制御が移ります。
continue文
- ラベルをつけない場合は、実行中の処理を中断し、ループの最後に制御が移ります。
- ラベルをつけると、ラベルのループの最後に制御が移ります。
synchronized文
- Javaはマルチスレッドによって複数の処理を同時に実行することができます。
- synchronized文は、同時に実行したくないコードに対して排他的ロックをかけます。
- 式は、その値をオブジェクトまたは配列で指定します。
- プログラムで、データを共有したマルチスレッド処理を実行しないときは、synchronized文は不要です。
- public static void SortIntArray(int[]a){
- synchronized(a){
- 配列aのソート;
- }
- }
- この例は、配列aをソートするにあたって、実行中に他のスレッドに
- この配列を変更されないようにsynchronized文でロックしています。
例外処理
プログラムの実行中に、いろいろなエラーが発生する可能性があります。このような状態をあらかじめ予想して、エラーに対応する処理を記述しておくことができます。
可能な限りプログラム作成時に、例外発生の可能性のある部分をtryブロックで、また例外処理の内容をcatchブロックに記述しておきます。
throw文
- throw文を使えば、自分で例外を発生させることができます。
- 式の値は、Throwableクラスおよびサブクラスのインスタンスになります。
try文
try ブロック
catch (引数)ブロック
catch (引数)ブロック
.....
finally ブロック
|
Javaでは、自動的に処理されるいくつかの例外が定義されています。主なものを示します。
- ArithmeticException:算術演算で例外が発生した
- NagativeArraySizeException:配列のサイズがマイナスになった
- ArrayIndexOutofBoundsException:対象の配列の範囲を越えてアクセスした

めだかの学校
教室
教員に対するご意見はこちらへ:(Mail to : cbu-staff@ML.psn.or.jp)
用務員:臼井義美
(Mail to : yosimi-u@is.aist-nara.ac.jp)