libro
www.tuyano.com
初心者のためのGroovy/Grails入門

30分でわかる(かも知れない)Groovy超入門! (3/5)

作成:2013-09-28 10:48
更新:2013-09-28 10:48

■制御構文はJavaより便利!

続いて、制御構文について説明しましょう。これらも基本的にはJavaと同じですが、より便利なように拡張されています。


■if-else文

条件分岐の基本「if-else」はJavaとほぼ同じです。以下のようにifとelse、条件を指定して記述します。
if (条件){
    ……true時の処理……
} else {
    ……false時の処理……
}
Groovyでは、ゼロnullfalseとして扱われます。例えば、if (x * 2)というように条件設定すると、x * 2の値がゼロだとelse以降を実行するようになります。ゼロ以外の値は、プラスでもマイナスでもすべてtrue扱いとなります。


■switch-case文
switch( チェックする値 ){
    case 値:
    ……実行する処理……
    break;
    
    ……必要なだけcaseを用意……
}
switch-case文も、基本はJavaと同じです。ただし! 決定的に違うのは、caseに整数以外の値も設定できる、という点です。文字列を指定することもできるし、配列を使うこともできるのです! 配列を利用した場合、その中に保管されている値のいずれかと一致すればそのcaseにジャンプします。また対応するcaseが見つからなかった場合として「default:」というラベルも使うことができます。
def x = "zwei"
switch(x){
    case ["one","two","three"]:
    println("English.")
    break
    case ["eine","zwei","drei"]:
    println("Deutsch")
    break
    case ["un","deux","trois"]:
    println("Français")
    break
    default:
    println("わかりません。")
}
例えば、こんな具合にコードが書けます。変数xに1~3のいずれかを示す単語を入れると、それが英語かドイツ語かフランス語かをチェックし結果を表示する、というサンプルです。文字列配列を使って効率的に分岐ができていることがわかりますね。


■for文
for( 変数 in 配列など ){
    ……実行する処理……
}
for文は、Javaとはかなり違いがあります。これはJavaの「配列・コレクション用のfor」に相当するものだと考えればよいでしょう。forの()内には変数と配列やコレクションなど「多数の値がまとめられている値」が設定されます。これにより、配列などから順に値を取り出し変数に代入していくという繰り返し処理が実行されます。

では、普通のforでよく使われている「カウンタ変数による繰り返し」は使えないの? for(int i = 0;i < 100;i++)みたいな書き方はできないのか?と思った人。実はそうでもありません。Groovyにはレンジ(Range)という、数値の範囲を指定する値が用意されており、これを使うことで一定の範囲の値を指定し繰り返すことができます。
for(int i in 1..10){
    println "count: $i"
}
例えば、こうすると1から10までの数を出力します。ここではinの後に「1..10」と指定していますね。これがレンジの値です。「初期値..終了値」というように2つの値を2つのドットでつなげて書くことで、その範囲の数値を持つ配列と同じ働きをするものが作れます。例えば、1..3なら、[1, 2, 3]と同じ働きをする、というわけです。


■while文
while( 条件 ){
    ……実行する値……
}
これは、Javaとほぼ同じですね。()内に真偽値として得られる値や式を設定すれば、その結果がtrueである間、処理を繰り返します。ifと同様、条件ではnullゼロfalseと判断することができますので、より柔軟な条件設定ができるでしょう。
def n = 10
while(n){
    print "${n--} "
}
println "end."
例えば、これは10から数字をカウントしていくサンプルです。ゼロになると繰り返しを抜けて終了します。while(n)というように、変数を1つ記述するだけで済みます。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※switch-caseの例

def x = "zwei"
switch(x){
    case ["one","two","three"]:
    println("English.")
    break
    case ["eine","zwei","drei"]:
    println("Deutsch")
    break
    case ["un","deux","trois"]:
    println("Français")
    break
    default:
    println("わかりません。")
}


※forの例

for(int i in 1..10){
    println "count: $i"
}


※whileの例

def n = 10
while(n){
    print "${n--} "
}
println "end."


※関連コンテンツ

「初心者のためのGroovy/Grails入門」に戻る