Java/JavaFX/JavaFX構文

Top > Java > JavaFX > JavaFX構文

JavaFX構文

プログラムを制御する構文はそれぞれ特徴あります。

ブロック構文

ブロック構文は{}括弧で囲まれている複数の式から構成されます。
複数の式の最後の式がブロック構文の値となります。

	class Dai{
	    var num:Integer={
	        var sum = 0;
	        for(x in [0..100]){
	            sum += x;
	        }
	        //numに代入される
	        sum;
	    }
	}

DaiクラスのInteger型の変数numに値を代入するために、{}括弧でくくられた式を複数使用しています。
これがブロック構文です。
numにはブロック構文の最後の式の、sumの値が代入されます。
ブロック構文のほか、必要に応じてプログラムを制御する構文は大きく2つに分けられます。

  • 条件分岐
    if構文
  • 繰り返し
    for構文
    while構文

if構文

条件の結果により処理変更します。

  • 条件が正しい場合
    	if(条件){
    		[実行する処理]
    	}
  • 条件の結果で処理を分ける場合
    	if(条件){
    		[条件が正しい場合の処理]
    	}else{
    		[条件が正しくない場合の処理]
    	}
    Javaでのif文とほぼ同じですが少し仕様が異なります。
    条件によって切り替えるのは括弧でくくられた複数の文ではなくブロック構文になります。
       var boolean:Boolean = true; 

      var color = if (boolean) {
          Color.BLACK;
      } else {
          Color.YELLOW;
      }

変数booleanがtrueであれば、変数colorにColor.BLACKが代入され、
変数booleanがfalseであれば、変数colorにColor.YELLOWが代入されます。

条件演算子

if構文はブロック構文で扱うだけでなく処理だけも記述でき、また条件演算子?:も使用できます。

	var value = 2;
	//条件演算子
	var color1 = if (value mod 2 == 0) Color.RED else Color.BLUE;
	//処理だけ記述
	if (value mod 2 == 0) {
	    println("{value}は偶数");
	} else {
	    println("{value}は奇数");
	}

else if

else ifを使用すると複数の条件式を表記できます。

	if (value mod 3 == 0) {
	    println("{value}は 3 で割り切れる");
	} else if (value mod 3 == 1) {
	    println("{value}は 3 で割ると 1 余る");
	} else if (value mod 3 == 2) {
	    println("{value}は 3 で割ると 2 余る");
	}

JavaFXにはJavaで使用したswitch構文が用意されてないので、switch構文を使用したいときはif..else if..で代用させなければなりません。

for構文

配列から値を順番に取り出し変数に代入して繰返しを行います。

	for( 変数  in  配列 ){
		繰り返す処理
	}

配列の個々の要素を代入する変数と、変数と配列の間にはinを記述します。

	var values = [0..5];
	  
	for (value: Integer in values) {
	    println("{value}");
	}
	実行結果
	0
	1
	2
	3
	4
	5	

valueのInteger型は省略できます。

continue、break

以降の処理をスキップして次の繰り返しに移行するcontinueと、制御を終了させるbreakが使用できます。

	for (a in [0..10]) {
	    if (a == 5) {
                //処理をスキップ
	        continue;
	    } else if (a == 8) {
                //処理を終了
	        break;
	    }	  
	    println("a: {a}");
	}
	実行結果
	x: 0
	x: 1
	x: 2
	x: 3
	x: 4
	x: 6
	x: 7

xが5のときcontinueによりprintlnをすることなく次の繰り返しに制御が移動します。
xが8のときbreakによりfor文を抜けて繰り返し処理が終了します。

if文と同じくfor文も{}でくくられた複数の文を繰り返すのではなく、ブロック構文を繰り返し実行します。
結果は配列になる。

          //各要素が[0..10]を2倍した値を持つ配列を作成
	var adds: Integer[] = for (val: Integer in [0..10]) {
	    val * 2;
	}
	println(adds);

	var number1= ["One", "Two", "Three", "Four", "Five", "Six", "Seven"];

	for (num in number1) {
            //indexofで要素の位置取得
	    println("{indexof num}: {num}");
	}
	実行結果
	[ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 ]
	0: One
	1: Two
	2: Three
	3: Four
	4: Five
	5: Six
	6: Seven

[0..10]の各要素を2倍した配列を作成します。
indexof演算子を使用すると現在の指している要素の位置番号を取得することができます。

for文の中にfor文を記述することができ、またfor文の中に複数の配列を書くこともできます。

          //複数の配列を記述
	for (a in [0..2], b in [0..1]) {
	    println("a: {a} b: {b}");
	}
        //for文の中にfor文を記述
	for (x in [0..2]) {
	    for (y in [0..1]) {
	        println("x: {x} y: {y}");
	    }
	}
	実行結果
	a: 0 b: 0
	a: 0 b: 1
	a: 1 b: 0
	a: 1 b: 1
	a: 2 b: 0
	a: 2 b: 1
	x: 0 y: 0
	x: 0 y: 1
	x: 1 y: 0
	x: 1 y: 1
	x: 2 y: 0
	x: 2 y: 1

記述方法は違うけども実行結果は同じです。

while構文

for構文と同じく繰り返しよりを行います。ブロック構文の値をとらないので、for文のようにシーケンスに代入できません。
Javaと記述方法は同じです。

	var x = 0;

	while (x < 10) {
	    println("x: {x}");
	    x++;
	実行結果
	x: 0
	x: 1
	x: 2
	x: 3
	x: 4
	x: 5
	x: 6
	x: 7
	x: 8
	x: 9

break文、continue文も使用できます。

例外

プログラムの実行中に発生するエラーのことを例外と言います。

try,catch

tyr{}の中で例外が発生すると自動的にcatch{}に移動します。
finally{}は
例外が発生した、してない関係なく最後に必ず処理をします。

	try{
	    例外が発生する処理
	}catch(変数){
	    例外処理
	}finally{
	    最後に実行する処理
	}

throw

throwを使用すると自分で例外を発生させることができます。

	try{
	     throw new Throwable();
	}catch(e){
	    e.printStackTrace();
	}

スローできるのはjava.lang.Throwableクラスだけです。
JavaFXではチェックされる例外であってもtry..catchは必須ではありません。

	var reader = new BufferedReader(new FileReader("dai.txt"));
	var line = reader.readLine(); 
	reader.close();

dai.txtがない場合などjava.io.FileFoundException?例外や、java.io.exception例外がスローされる可能性があるのですが、cacthを書く必要はありません。
必要の応じてtry..catch書く必要があります。

JavaFXホームページ。
http://javafx.com/ja/


アクセス総数4518件

最終更新日: 2009-09-03 (木) 22:23:03 (2855d)

このページをブックマーク:

このページのURL(コピペして利用下さい):

TOP