演算子について
学習の目的
この単元を完了すると、次のことができるようになります。
- Swift の基本的な算術演算を実行する。
- 種類の異なる 2 つ数を加算する。
- 除算の余剰を求める。
演算子は、コードを機能させる記号です。これらを使用して、値のチェック、変更、組み合わせなどの操作を行います。Swift には、算術演算、論理演算、複素数の代入を行うものなど、多くの種類の演算子があります。
この単元では、加算 (+
)、減算 (–
)、乗算 (*
)、除算 (/
) の基本的な算術演算子など、Swift 言語の演算子について学習します。
値の代入
値を代入するには、=
演算子を使用します。左側の名前に右側の値が代入されます。
次のコードは、Luke がお気に入りの人物であると宣言しています。
let favoritePerson = "Luke"
=
演算子は、値の変更または再代入にも使用されます。
次のコードは、shoeSize
変数を宣言し、その値として 8
を代入します。その後、値が 9
に変更されます。
var shoeSize = 8 shoeSize = 9 // Reassigns shoeSize to 9
基本的な算術
+
、-
、*
、/
の各演算子を使用して、基本的な演算機能を実行できます。
var opponentScore = 3 * 8 // opponentScore has a value of 24 var myScore = 100 / 4 // myScore has a value of 25
演算子を使用して、他の変数の値を使用した算術演算を実行できます。
var totalScore = opponentScore + myScore // totalScore has a value of 49
演算子で現在の変数を参照して新しい値に更新することもできます。
myScore = myScore + 3 // Updates myScore to the current value plus 3
小数点精度が必要な場合は、Double
値で同じ演算を行うことができます。
let totalDistance = 3.9 var distanceTravelled = 1.2 var remainingDistance = totalDistance - distanceTravelled // remainingDistance has a value of 2.7
Int
型では整数のみがサポートされるので、Int
値に対して除算演算子 (/
) を使用すると、結果の Int
値は最も近い整数に切り捨てられます。
let miles = 51 let gallons = 4 let milesPerGallon = miles / gallons // milesPerGallon has a value of 12
定数または変数を Double
値として明示的に宣言すると、結果には小数値が含まれます。
let miles: Double = 51 let gallons: Double = 4 let milesPerGallon = miles / gallons // milesPerGallon has a value of 12.75
小数点精度が必要なときは、Double
値を使用してください。
複合代入
前述のコードスニペットでは、変数に数を加算して更新しました。
var myScore = 10 myScore = myScore + 3 // Updates myScore to the current value plus 3
すでに代入された値を変更するもっと良い方法があります。算術演算子の後に =
演算子が追加される、複合代入演算子を使用できます。
myScore += 3 // Adds 3 to myScore myScore -= 5 // Subtracts 5 from myScore myScore *= 2 // Multiples myScore by 2 myScore /= 2 // Divides myScore by 2
複合代入演算子を使用すると、よりクリーンで簡潔なコードを記述できます。
演算順序
算術演算は必ず特定の順序で行われます。乗算と除算は加算と減算より優先され、括弧は 4 つすべてより優先されます。
次の変数について考えます。
var x = 2 var y = 3 var z = 5
次の計算について考えます。
let orderOfOperations = x + y * z // Equals 17 let expression = (x + y) * z // Equals 25
上記の 1 行目では、乗算が加算より優先されます。2 行目では、括弧内が最初に処理されます。
数値型の変換
すでに学んだとおり、算術演算を行うときに異なる数値型を組み合わせることはできません。
たとえば次の場合、integer
が Int
値で、decimal
が Double
値なので、コンパイラーエラーが発生します。
let integer = 3 let decimal = 0.1415927 let pi = integer + decimal // This would result in an error.
コードが最後まで実行されるようにするには、integer
の前に変換後の型を追加して、新しい Double
値を求めます。
let integer = 3 let decimal = 0.1415927 let pi = Double(integer) + decimal
修正したコードでは、Double(integer)
で Int
値 integer
の新しい Double
値を求め、コンパイラーではその値を decimal
に足した結果を、pi
に代入できます。
ラボの終了
Swift を実際に使ってみる準備はできていますか? 課題で学習したことを Lab - Operators.playground で練習してください。
テストの前に
独自の方法で演算子についての知識をテストします。以下は、Swift コードのサンプルです。テストで出題される問題では、コードの動作を理解していることを確認するために、このコードを評価する必要があります。ご健闘をお祈りします。
テスト問題 1
let myNumber = (2 + 3) * (7 + 2)
テスト問題 2
var myNumber = 6 myNumber /= 3