0
static void main(args){

        System.in.withReader {
            def input = it.readLine()
            for(def i = 0; i < input; i++){
                println i
            }
        }

    }

ソースコード..単純なものだと思いますが、なぜ48まで印刷されるのかわかりません..ここに、指定された引数が1の場合の出力があります.

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

何が問題なのですか?

4

2 に答える 2

4

歯石は正しい、解決策は変わることだ

def input = it.readLine()

def input = Integer.parseInt( it.readLine() )

または(よりGroovy)

def input = it.readLine().toInteger()

(ASCII値1を使用している理由は、単一のchar文字列をintに強制しようとすると、groovyが単一のchar文字列をASCII値に変換するためです...これは紛らわしいと主張されており、将来変更される可能性がありますgroovy のバージョンですが、今のところ下位互換性の理由から残っています)

于 2012-03-28T22:42:04.937 に答える
3

文字1のASCII値は49です。入力を整数に変換してください。

于 2012-03-28T20:13:38.890 に答える