Help us understand the problem. What is going on with this article?

Swift3の標準出入力

More than 3 years have passed since last update.

Swift3の標準入出力の自分用メモです。paiza.ioで動作確認済みです。ご自由に利用ください。

標準入力をString型に代入

var str = readLine()!
print(str)
// abc を入力すると
// abc が出力される

Swiftでは標準入力をString型で受け取ります。

標準入力をInt形に代入

var num = Int(readLine()!)!
print(num)
// 28 を入力すると
// 28 が出力される

String型で受けてから、Int型に変換しています。

分かりやすく書くとこうなります。

var str = readLine()!
var num = Int(str)!
print(num)

スペース区切りの標準入力をString型の配列に代入して、全要素を出力

import Foundation
var str = readLine()!.components(separatedBy:" ")
for i in str {
    print(i)
}
// abc de を入力すると
// abc
// de
// が出力される
// 配列strには["abc", "de"]が入っている

String型で受けてから、components(separatedBy:" ")を使って、
"abc"と"de"を要素に持つString型の配列を作っています。

区切り文字は、separatedBy: のあとに""で挟んで指定します。
例えば、/ で区切りたいときは、componenents(separatedBy:"/") と書きます。

スペース区切りの標準入力をInt型の配列に代入して、全要素を出力

import Foundation
var str = readLine()!.components(separatedBy:" ")
var num = [Int]()
for i in str {
    num.append(Int(i)!)
    print(i)
}
// 29 18 を入力すると
// 29
// 18
// が出力される
// 配列numには[29, 18]が入っている

var num = [Int]()で要素を持たないInt型の配列が作れます。
num.append(5)と書くと、配列の末尾に、5 が追加されます。
今回は、配列strの各要素をInt型に変換してから追加しています。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away