0

そのため、Groovy では、奇数と混合数を除外する方法を見つけようとしています。また、「a」が偶数の場合は「Even」と表示させたいと思います。「n」と「m」の値は置き換え可能です。どこ "?" 助けが必要なところです。これが今のコードです:

n = ( 100 / 4 )

m = ( 6 * 6 )

a = (n + m)

println ( n + m )

println ( a / 2 )

if a = ?

{

        println "Even"

}

答え 30.5. 私は見ましたが、これを行う方法を作った人を見つけることができません。

実行すると、次のように表示されます。

groovy> n = ( 100 / 4 ) 

groovy> m = ( 6 * 6 ) 

groovy> a = (n + m) 

groovy> println ( n + m ) 

groovy> println ( a / 2 ) 

groovy> if a = ?

groovy> { 

groovy>     println "Even" 

groovy> } 

1 compilation error:

expecting '(', found 'a' at line: 6, column: 4

どんな答えでも大歓迎です。ありがとう!

4

3 に答える 3

1

これは役立つかもしれません:

boolean isEvenInteger(Number value) {
  return new BigDecimal("$value").remainder(2) == 0
}
于 2013-01-09T01:47:31.723 に答える
0

別のルートは次のとおりです。

if( a.toBigInteger().mod( 2 ) == 0 ) {
  println 'Even'
}
于 2013-01-09T09:35:07.330 に答える
0

コードをもう少し読みやすく保ちながら、テストケースで同様のことを行うために、これをすばやくまとめました...一般的なクラスをどこかに定義します(残念な名前ですが、これは簡単なテストコード用でした):

@TupleConstructor
class NumClass {
    Closure<Boolean> test
    boolean isCase(Object o) { test(o) }
}

次に、テストするいくつかのインスタンス:

static final NumClass EVEN = new NumClass({!(it % 2)})
static final NumClass ODD = new NumClass({it % 2})

switchクラスは、またはを使用してテストできます。in

(1..20).findAll{it in ODD}

(1..20).each{
  switch(it) {
    case EVEN:
      println "${it} is even"
      break
    case ODD:
      println "${it} is odd"
      break
    default:
      println "${it} is a mystery to me"
  }
}
于 2016-09-08T19:14:22.697 に答える