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という任意に名前をつけた定数に入れてしまっています。ここの名前ってなんでもいいんですね。。なんか不思議です。
こちらのサイトを参考にしました。
コメント