Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

Swift
入門編

  1. Swiftとは
  2. Swift実行環境の構築について
  3. print()を使って出力してみよう
  4. コメントとコメントアウトについて
  5. 文字列とエスケープシーケンスについて
  6. 数値について
  7. 基本的な演算子の使い方とオペランドについて
  8. 真偽値と比較演算子について
  9. データ型とは
  10. 変数と定数について
  11. 変数と定数の使い方
  12. 配列とは
  13. 配列の要素の追加や削除について
  14. 配列の使い方
  15. 辞書(Dictionary)とは
  16. 辞書のプロパティの追加や削除について
  1. nilとオプショナルについて
  2. 関数とは
  3. 引数と仮引数について
  4. 内部引数名と外部引数名について
  5. 返り値(戻り値)とreturnについて
  6. タプル(tuple)について
  7. 関数のオーバーロードについて
  8. もし〜ならばというif文について
  9. 論理演算子について
  10. 処理を分岐させるswitch文について
  11. 繰り返しのfor-in文と範囲演算子について
  12. ループ処理のwhile文とrepeat-while文について
  13. 処理を抜けるbreak文とcontinue文について
  14. クラスとインスタンスについて
  15. イニシャライザ(コンストラクタ)について
  16. 関数とクラスの使い分けについて
  1. トップページ
  2. Swift入門編 - 基本的な演算子の使い方とオペランドについて

基本的な演算子の使い方とオペランドについて

みなさまどうも。いかがお過ごしでしょうか。

続きましてSwiftで簡単な『演算子』を使って四則演算(足し算とか引き算とか)をやってみましょう。そのついでに『オペランド』についても解説しておきます。

これまでに紹介した『print()』ってやつですが、こいつは『()』の中に演算式(計算式)を書くことができます。というわけでちょいと加算(足し算)を試してみましょう。

足し算で使う記号は『+』です。数学とか算数そのままでございますね。では『1 + 1』を『print()』の『()』の中に記述してみます。こんな感じです。

print(1 + 1)

実行させるとこうなります。Xcodeの下のデバッグエリアに注目ですね。

2

ちゃんと演算できているようですね。こんな感じで「1 + 1」と記述すると「2」という演算結果が返ってきます。

まあ想像通りの動きなので何にも面白くないかもしれませんが、ちょっとプログラミングしてるなぁという感覚を覚えてもらえてたら嬉しいです。

プログラミングの世界では今回の足し算のような演算を言葉で表現するときに「値を返す」という言い方をします。

なんのこっちゃってお話なんですが通常、算数とか数学だと「1 + 1の答えは2です」って言い方をしますよね。

これをプログラミングの世界では「1 + 1の演算式は2を返す」って言い方をします。

ちょっとした言葉の言い回しなんですが、参考書とか現場で良く使われる表現なのでなんとなくでも覚えておくようにした方がよいかもしれません。

ちょっと迷ったら簡単な算数とかに当てはめてみると良いかもです。

Swiftの『+』記号は加算以外に文字列連結を行うことができます。使い方は簡単で文字列と文字列の間に『+』を置くだけでOKです。

print("初音ミク" + "が好きです。") // 文字列同士がくっついて『初音ミクが好きです。』が出力されます。

プログラミングにおいて文字列の連結処理の登場頻度はかなり高いのでバシッと覚えておいておくようにして下さい。

ではこの勢いで四則演算に使用する記号をまとめて確認していきましょう。

Swiftでの加算は『+』、減算は『-』、乗算は『*』、除算は『/』、そして剰余(割り算した時の余り)は『%』を使用します。

print(1 + 2) // 『1 + 2』の演算結果を出力します。
print(3 - 2) // 『3 - 2』の演算結果を出力します。
print(3 * 2) // 『3 × 2』の演算結果を出力します。
print(6 / 2) // 『6 ÷ 2』の演算結果を出力します。
print(6 % 5) // 『6 ÷ 5』の余りを出力します。

これらはほぼ全てのプログラミング言語共通なので覚えておきましょう。PCの電卓ソフトなんかでも同じような感じになっているはずです。

そして上記のような特殊な効果を持つ記号とか文字のことを『演算子』なんて呼んだりしますね。

そんでもって演算の対象となる値や数値や変数の事を『オペランド』といいます。例えば「1 + 2」の場合は数値『1』と数値『2』が『オペランド』になります。

この『演算子』と『オペランド』って言葉は良く使用されるので覚えておくようにして下さい。

さて、ちょっと注意点ですが、プログラミングでは「1+1」ではなく「1 + 1」って感じで『演算子』の周りに半角スペースを空けます。以下のような感じですね。

print(1 + 2) // 『1+2』ではなく『1 + 2』といったように『+』の周りに半角スペースを必ず置くようにして下さい。

これ、他の言語ではただのお作法という感じなんですが、Swiftでは必ず『演算子』の両側に半角スペースを置くようにする必要があります

なんでかというとSwiftは自作の『演算子』を作成することができ、その際に『演算子』の両側に半角スペースを置いてあげないとSwift側で上手く『演算子』として認識してくれない可能性がある、というのが理由です。これは思わぬバグの原因になりがちなので要注意です。

Swiftでは『+=』や『-=』といったように『加算』や『減算』とかをしつつ同時に『代入』を行う演算子が用意されています。これは他の言語でも共通ですね。以下がサンプルです。

var n = 1
n += 1 // 変数『n』に数値『1』を加算しつつ自身に代入します。
print(n) // 数値『2』が出力されます。

var n1 = 1
n1 -= 1 // 変数『n』に数値『1』を減算しつつ自身に代入します。
print(n1) // 数値『0』が出力されます。

var n2 = 1
n2 *= 3 // 変数『n』に数値『3』を乗算しつつ自身に代入します。
print(n2) // 数値『3』が出力されます。

var n3 = 10
n3 /= 2 // 変数『n』に数値『2』で除算しつつ自身に代入します。
print(n3) // 数値『5』が出力されます。

var n4 = 7
n4 %= 5 // 変数『n』に数値『5』で剰余演算しつつ自身に代入します。
print(n4) // 数値『2』が出力されます。

この中でも『+=』と『-=』は結構使いますので覚えておきましょう。

あとSwiftでは配列の要素を追加するときに『+=』を使用しますのでこちらも合わせて覚えておいて下さい。

※配列についてはこちらへどうぞ。

プログラミングの世界では『インクリメント』と『デクリメント』ってやつがいます。

これは対象となる『オペランド』に『1』を加算したり『1』を減算したりする処理で、ほぼ全ての言語で組み込まれている記法になります。

こんなやつですね。以下はJavaScriptの記述です。

var n = 1;

++n; // 数値『1』を加算します。
--n; // 数値『1』を減算します。

他の言語に精通している方は馴染みある記法になるかと思います。

そんな皆様にステキなご報告になりますが、Swiftだと『インクリメント』と『デクリメント』は非推薦にされちゃってますので使わないようにして下さい。

今現在(2016年)に主流になっているSwiftではまだ使えるのですが、Swift3あたりからサポートが完全に打ち切られるみたいですね。

なのでSwiftで『インクリメント』と『デクリメント』をするには以下のようにストレートに記述するようにして下さい。

var n = 0

n = n + 1 // 『インクリメント』

print(n) // 『1』が出力されます。

n = n - 1 // 『デクリメント』

print(n) // 『0』が出力されます。

著者もこれまで『インクリメント』と『デクリメント』を沢山使ってきたせいかついつい書いてしまうことも多いので皆様もお気をつけ下さい。

さて、というわけで簡単な『演算子』とか『オペランド』については以上になります。続いての記事では『真偽値』と『比較演算子』についてやっていきましょう。

ではこの辺で失礼いたします。

この記事は桜舞が執筆致しました。

著者が愛する小型哺乳類

桜舞 春人 Sakurama Haruto

ISDN時代から様々なコンテンツを制作しているちょっと髪の毛が心配な東京在住のプログラマー。生粋のロングスリーパーで、10時間以上睡眠を取らないと基本的に体調が悪い。好きなだけ寝れる生活を送るのが夢。ゲームとスポーツと音楽が大好き。誰か髪の毛を分けて下さい。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。