2016-06-13 9 views
0

私はSwift and Playgroundには比較的新しいです。遊び場で実験したとき、私は5つの数字すぐにオペレーターの後に予期せぬ表現

func avg (scores: [Int]) -> (Int){ 
    var avg = 0 
    var total = 0 
    var count = 0 

    for score in scores { 
     total += score 
     count ++ 
    } // Error: unexpected expression after operator 

    avg = total/count 

    return avg 
} 

let score = avg([10, 10, 10, 10, 10]) 
print(score) 

の平均値を計算するためにスウィフトコードの一部を書いたが、それは(コード内のコメントでは上記参照)私は、このエラー「演算子の後に予期しない表現」を与え続けています。誰かが理由を説明できますか?

+0

前方互換構文を使用する必要があります。) 'scores.reduce(0、コンバイン:+)/ scores.count' – Hamish

答えて

1

エラーメッセージは少し誤解を招くことがあります。

実際のエラーの理由は、count++の間のスペース文字です。
後置演算子は、空白なしで直接オペランドの後に続かなければなりません。

とにかくあなたは常に関数型プログラミングを受け入れる...ループのPAHに

count += 1 
0
for score in scores { 
    total += score 
    count ++ 
} // Error: unexpected expression after operator 

++ショートカットはあなたが数と++

ので

の間にスペースを持つことができない他、この

for score in scores { 
    total += score 
    count = count + 1 
} 

を行う必要がありスウィフト3で削除されます

count++ 
+0

@vadianトゥルーdat。 –

0

このように試すことができます。

func average(scores: [Int]) -> Int { 
    var avg = 0 
    for number in numbers { 
     avg += score 
    } 
    var ave = (avg)/(scores.count) 
    return ave 
} 

totalを0と宣言したcountで除算するだけです。配列の数が必要です。[Int]。だからscores.countを実行する必要があります。これはその配列の要素数を返します。

関連する問題