2017-10-24 11 views
0

これがなぜ機能しないのか分かりません。私はスイフトの世界ではかなり新しいです。Swift - 2進演算子 '> ='は、 'String'型と 'Int'型のオペランドには適用できません

私は取得していますエラーがBinary operator '>=' cannot be applied to operands of type 'String' and 'Int'

誰もが、私はこのエラーを取得していますなぜ私は理解して助けてもらえますか? StringをDoubleに変換する必要がありますか、それとも私が完全に欠けている何かがありますか?もう一度私はSwiftには新しいです。

+0

すべてのメッセージ、メッセージ1などは、Intでなければなりません。 –

答えて

1

StringをDoubleに変換する必要がありますか?

はい、基本的にはそれです。

あなたはすべての入力蓄積する最初の変数を宣言する必要があります。それは我々が興味を持っているものだので、私はDoubleの配列を宣言してることを確認し

var inputs = [Double]() 

を次に

を、たび入力をお願いし、Doubleに得られStringを変換して、配列に格納します。最後に

print("Please enter a temperature\t", terminator: "") 
var message : String = readLine()! 
let value : Double = Double(message)! 
inputs.append(value) 

、 (あなたは右のこの部分を得た)inputs内のすべての累積値をチェックします。

for value in inputs { 
    // value is already a Double 
    if value >= 80 { 
     message = "hot!" 
    } 
    // etc. 
} 

私は、すなわち(エラーチェックとDoubleに変換する方法を研究し提案しますどのように "100ホット!"を検出する変換できないため無視してください)。

また、ループを使用して値を読み取ることを検討してください。

+0

オプションのアンラップを強制しないでください。 nil coalescing演算子を使用し、デフォルト値を指定します。 '?? "" 'のための' 'または' ?? 0 '数値型の場合 –

+0

@LeoDabus私はできるだけ元のコードを尊重しました。 OPは初心者のようですが、私はさらなる混乱を招くようなものはすべて書き直したくありませんでした。また、オプションについてではない例での強制アンラッピングは完全に有効なIMHOですが、そうではありませんでした。 – djromero

+0

これは完璧に機能しました。どうもありがとう! –

関連する問題