Menu
Coddy logo textTech

型変換

CoddyのSwiftジャーニー「基礎」セクションの一部 — レッスン 34/86。

readLine()String? を返すため、計算を行うにはその文字列を数値に変換する必要がよくあります。Swift では明示的な 型変換 が必要です。文字列を自動的に整数や double 型に変換することはありません。

文字列を整数に変換するには、Int()イニシャライザを使用します。変換が失敗する可能性があるため(文字列に数字ではなく文字が含まれている可能性があるため)、このメソッドはオプショナル型を返します:

let input = "42"
if let number = Int(input) {
    print(number + 10) // 出力: 52
}

小数には Double() を使用します:

let priceString = "19.99"
if let price = Double(priceString) {
    print(price * 2) // 出力: 39.98
}

これは、readLine() を数値演算と組み合わせる際に特に便利です。アンラップを連鎖させることができます:

if let input = readLine(), let age = Int(input) {
    print("Next year you'll be \(age + 1)")
}

if let 文におけるカンマは、両方の条件が成功しなければならないことを意味します。つまり、入力が存在し、かつ整数に変換可能である必要があります。

challenge icon

チャレンジ

簡単

2つの入力(文字列としての小数と文字列としての整数)を読み取ります。それらを適切な数値型に変換し、その積を計算してください。

以下の入力を受け取ります:

  • 1行目:小数(例:"3.5"
  • 2行目:整数(例:"4"

readLine() を使用して両方の入力を読み取ります。最初の入力を Double に、2番目の入力を Int に変換します。その後、それらを掛け合わせて結果を表示してください。

if let と連鎖したオプショナルバインディングを使用して、入力と変換された値の両方を安全にアンラップしてください。

出力: 2つの数値の積を Double 型で表示します。

チートシート

Swiftでは、文字列と数値の間で明示的な型変換が必要です。

文字列を整数に変換するには、Int()を使用します。変換が失敗する可能性があるため、オプショナル型を返します:

let input = "42"
if let number = Int(input) {
    print(number + 10) // 出力: 52
}

文字列を小数に変換するには、Double()を使用します:

let priceString = "19.99"
if let price = Double(priceString) {
    print(price * 2) // 出力: 39.98
}

if let内でカンマを使用することで、readLine()によるオプショナルバインディングを連鎖させることができます。両方の条件が成功する必要があります:

if let input = readLine(), let age = Int(input) {
    print("Next year you'll be \(age + 1)")
}

自分で試してみよう

// 小数(10進数)を文字列として読み込む
if let decimalString = readLine() {
    // 整数を文字列として読み込む
    if let intString = readLine() {
        // TODO: 以下にコードを記述してください
        // if let を使用して decimalString を Double に、intString を Int に変換します
        // その後、それらの積を計算して出力します
        
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン