Swiftの標準入力:複数行の入力

広告




Pocket

Paizaのレベルアップ問題集をやっていて、慣れない標準入力にまあ悩まされました!!

どこを調べてもPython, Python, Python…たまにC言語で、Swiftの資料が全然ないですね。しかもPaizaも答えを公開していないし、練習問題見ても、「複数行の入力」でどんぴしゃに欲しい答えがない・・!

調べ尽くして困り果てたので、誰かの参考になればと思います。

標準入力で1行ずつ取得

まず、1行ずつ取得するというのはreadLine()でできます。

私はそれを知らず、永遠にa_iでiの部分をループ処理できないか考えていました。。

readLine()を書いた分だけ、1行ごとに取得できます。

let line1 = readLine()
let line2 = readLine()
let line3 = readLine()

なので上のように書いたところに、下のように入力したら、

3
5
7

1行ごとにline1 = 3、 line2 = 5、 line3 = 7として取得してくれます。

複数行にわたる入力:n個の整数 a_1 … a_n

まず先頭のnの値を取得します。

let n = Int(readLine()!)!

その後、a_1からa_nまでの行は、先ほどの1行の出力をn回繰り返せば良いので、

for _ in 1...n {
    let line = Int(readLine()!)!
    print(line)
}

となります。

a_1からa_nの行はlineという任意に名前をつけた定数に入れてしまっています。ここの名前ってなんでもいいんですね。。なんか不思議です。

こちらのサイトを参考にしました。

コメント

タイトルとURLをコピーしました