paizaをSwiftで挑戦中ですが、複数行の標準入力の受け取り方でこけたのでメモ。
(なぜSwiftはサンプルコードがないのか。。。)
関係ないけど、paizaのswiftはバージョン3.0.1(20190913現在)なんですね。
xcode10だと5.0だからまたどこかで書き方の差が出てハマりそうだ。。
(結論)複数行の標準入力の受け取り方
qiita.swift
/* 標準入力で次のように与えられたとする
2
5
4
*/
var Array = [String]() // String型の配列を用意
let row = 3 // 入力される行数
for i in 0..<row {
Array.append(readLine()!) // for文で配列に追加する
}
print(Array) // 出力結果 -> ["2", "5", "4"]
複数行ある場合、その行数と同じ回数readline()!
を取りにいかなればならないようである。
数が多い場合を想定してfor文で記載した。
解説
言語選択でSwiftを選択した際のデフォルト通り出力してみる。
一行目の値のみString型で出力される。
qiita.swift
/* 入力例
2
5
4
*/
let input_line = readline()!
print(input_line)
/* 結果
"2"
*/
試しに2回出力してみる。
二行出力される。
qiita.swift
/* 入力例
2
5
4
*/
let input_line1 = readline()!
let input_line2 = readline()!
print(input_line1)
print(input_line2)
/* 結果
"2"
"5"
*/
初心者はこんなことでも簡単に心が折れる
最初"2\n5\n4"
みたいなのを想像して頑張って改行でセパレートしようと頑張った。
全然違った。辛い。
辛くてもググるの大事。先人は偉大です。