2016-07-03 16 views
3

全体を読むまで、重複しないようにマークしてください。これはSwift 3に固有です。ReadLine()のSwift 3出力をIntegerに変換する方法は?

私は、Ints、Floatsなどのパラメータを持つ関数を持っています。私はreadLine()の出力を取り、Swiftにこれらの型としてreadLine()の出力を受け入れたいと思います。残念ながら、readLine()はStringを出力しますか?私が変換しようとすると、アンラップされていないことがわかります。私は助けが必要です。私はUbuntu 16.04を使用しています。

たとえば、私がarea(width: 15, height: 15)を持っていた場合、15と15を、readLine()またはそれに相当するreadLine()を含む2つの定数で置き換えると、端末のユーザーからの入力を受け入れることができますか?

私が書いているプログラムは、ほとんどの人が文字列に満足しているように見えるので、特に計算を行っていることに注意してください。これは文字通りCLIベースの電卓です。

EDIT 1(lol)これは、上記のより正確な説明です。

import Foundation 

func areaTrapezoid(height: Float, baseOne: Float, baseTwo: Float) { 
    let inside = baseOne + baseTwo 
    let outside = 0.5 * height 
     let result = outside * inside 
     print("Area of Trapezoid is \(result)") 
    } 

areaTrapezoid(height: 10, baseOne: 2, baseTwo: 3) 

そこで、台形は10単位、それぞれ2および3の長さを有する2つの塩基の高さを有している:次のコードは、台形の面積を印刷します。 ()、が出力オプションの文字列ではなく、フロートのreadLineすでに明らかなように、除き

import Foundation 

func areaTrapezoid(height: Float, baseOne: Float, baseTwo: Float) { 
    let inside = baseOne + baseTwo 
    let outside = 0.5 * height 
     let result = outside * inside 
     print("Area of Trapezoid is \(result)") 
    } 

let h = readLine() 
areaTrapezoid(height: h, baseOne: 2, baseTwo: 3) 

:しかし、私のような何かをしたいです。私は、ユーザーが対話型の方法でCLIを介して番号を入力できるようにしたいと思います。私はちょうどスイフトを学んでいますが、私はその言語を勉強していたときにC++で同様のことをしました。あなたが提供できるお手伝いをありがとう。

答えて

2

readLine()は、オプションの文字列を返します。

文字列をラップ解除するには、if letを使用し、文字列を整数に変換するには、Int()を使用します。

例:

import Foundation 
if let typed = readLine() { 
    if let num = Int(typed) { 
     print(num) 
    } 
} 

はあなたが二度ユーザを促しましょう:

let prompt1 = readLine() 
let prompt2 = readLine() 

その後:

if let response1 = prompt1, 
    response2 = prompt2, 
    num1 = Int(response1), 
    num2 = Int(response2) { 
    print("The sum of \(num1) and \(num2) is \(num1 + num2)") 
} 
+0

私は、私が実際にはコメントでき知りませんでした!さて、アップデートを見てください。これはそこに適用されますか? –

+0

はい、すべて同じです。この例で 'Int()'と同じように 'Float()'や 'Double()'を使用して、String入力から変換することができます。 – Moritz

+0

試して真実、兄弟。ありがとう、私は簡単な方法があるとは思わなかった! –

関連する問題