groovy を初めてさわってみて、ループ処理を試してみました。
package vesselsch.grtst
/**
* groovy テストクラス
* @author MyName
*/
public class testclass {
private final def name='MyName'
// デフォルトコンストラクタ //
public testclass () {
}
public def hello() {
println "Hello $name!"
}
// 九九表 in loop //
public def kuku_in () {
println ('-- kuku_in --')
// 99 //
for (i in 1..9) {
for (j in 1..9) {
println "$i X $j = ${i * j}"
}
}
}
// 九九表 each loop //
public def kuku_each () {
println ('-- kuku_each --')
def l
(1..9).each {
l = it
(1..9).each {
println "$l X $it = ${l * it}"
}
}
}
// 九九表 array loop //
public def kuku_array () {
println ('-- kuku_array --')
def iary = [1, 2, 3, 4, 5, 6, 7, 8, 9]
def jary = [1, 2, 3, 4, 5, 6, 7, 8, 9]
def ipos = 0
def jpos = 0
def itmp
def jtmp
iary.each {
//println iary[pos++]
itmp = iary[ipos]
jpos = 0
jary.each {
//println "$iary[ipos] X $jary[jpos] = ${iary[ipos] * jary[jpos++]}" // <== これはばつ
// [1, 2, 3, 4, 5, 6, 7, 8, 9][ipos] X [1, 2, 3, 4, 5, 6, 7, 8, 9][jpos] = 5
jtmp = jary[jpos]
println "$itmp X $jtmp = ${iary[ipos] * jary[jpos]}"
//println "${iary[ipos]} X ${jary[jpos]} = ${iary[ipos] * jary[jpos]}"
jpos++
}
ipos++
}
}
// 型推論テスト うるう年判定 //
public def is_leap_year(y) {
def isleap = false; // デフォルト //
if (y % 100 == 0) {
if (y % 400 == 0) {
isleap = true;
}
}
else if (y % 4 == 0) {
isleap = true;
}
return isleap
}
// 文字列反転 //
public def reverseTxt (src) {
def res = ""
def len = src.length() - 1
//println "$len"
def tmp
len.downto(0) {
//tmp = src.getAt(it, ${it + 1})
//println "$tmp"
//println "$it"
//tmp = src.getAt(it..(it + 1))
//tmp = src.getAt($it..($it + 1))
//tmp = src.getAt(it)
//println "$tmp"
res += src.getAt(it)
}
return res
}
public static void main(String[] args) {
// インスタンス化 //
def tst = new testclass ();
// voidメソッド呼出し //
tst.hello()
tst.kuku_in()
tst.kuku_each()
tst.kuku_array()
def isLeap = tst.is_leap_year(2018)
println "$isLeap"
// 関数呼び出しテスト //
// その1:変数化 //
def rev = tst.reverseTxt ("あいうえお")
println "$rev"
// その2:直接化 //
println "${tst.reverseTxt ('あいうえお')}"
//def testclass tst2 = new testclass(); // <=== これは間違い
}
}