人生と同じ? プログラムの式と演算子、制御文を学ぶ:iOS SDKで始めるObjective-C入門(5)(1/4 ページ)
開発ツールXcode/iOS SDKを使ってiPhone/iPadアプリを作る方法を、プログラミング言語「Objective-C」の書き方/文法を交えて解説。Windowsを使っていたけど、iOSアプリを作るためにMacを使い始めた初心者を対象にしています。今回はプログラミングに欠かせない算術/比較/論理演算子、if/switch/while/for/break/continue文などの使い方を解説します。
前回の「Xcode/Objective-Cで始めるプログラミング基本のキ」では実際に書いたプログラムを動かして、変数やNSLogの使い方を覚えました。今回はプログラムの基本中の基本である「式」「演算子」「制御文」について解説していきます。
前回に引き続き、連載第2回の「iOSアプリ開発初心者に捧ぐ開発環境Xcodeの概要とインストール」で作成した「HelloWorldApp」の「ViewController.m」でプログラムの確認を行います。
プログラミング言語における式
「式」と聞くと、まず頭に浮かぶのは「1+1」「10-5」などの簡単なものから「(上辺+下辺)×高さ÷2」「cos2x + sin2x」といった数学における数式だと思います。この数式のことをプログラミングの世界では「式(expression)」といいます。
/* 初めてのObjective-Cプログラミング ファイル名:ViewController.m 作者:平井 祐樹 作成日:2013/02/12 */ #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 式を書く! 1 + 1; } @end
プログラムに式を書けばプログラム実行時に式を計算できますが、このままだと、ただ計算するだけで何も起きません。普通は、計算した結果を表示したり、計算結果を集計したり、と何かしらの目的を持って計算を行いますよね。では、計算結果を覚えておくには、どうしたら良いのでしょうか。
ここで前回解説した変数の登場です。例えば、先ほどお話した「計算した結果を表示する(ここではコンソールに表示します)」には、変数を使用した場合、以下のように書きます。
/* 初めてのObjective-Cプログラミング ファイル名:ViewController.m 作者:平井 祐樹 作成日:2013/02/12 */ #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; int result; result = 1 + 1; NSLog(@"1 + 1 = %d", result); // コンソールに「result = 2」が表示される } @end
当然、以下のようにも書けます。
int result = 1 + 1; NSLog(@"1 + 1 = %d", result); // コンソールに「result = 2」が表示される
変数を使用せず、直接表示することも可能です。
NSLog(@”result = %d”, 1 + 1); // コンソールに「result = 2」が表示される
それでは、計算結果を集計したりするにはどうしたら良いのでしょうか。勘の良い方は、すでにお気づきかもしれませんが、式では変数を使用することも可能です。
int num1 = 1; // num1に1を代入 int num2 = 1 + 1; // num2に1 + 1を計算した結果を代入 int num3 = 1 + 1 + 1; // num3に1 + 1 + 1を計算した結果を代入 int sum = num1 + num2 + num3; // num1 + num2 + num3を計算した結果を代入 NSLog(@”1 + 2 + 3 = %d”, sum); // コンソールに「1 + 2 + 3 = 6」が表示される
このように、普段なじみ深い数式を書くようにプログラムでも式を書くことができます。簡単ですね。
注意!
以下の文を見てみましょう。
1 + 1 = num; // 「1 + 1」とnumが等しい??
一見正しいように見えますが、これはプログラミング言語としては間違いです。Objective-Cの世界では「=」は「右にある値を左にある変数に代入する」ということを意味しているからです。
分からない方は、詳細については前回記事で解説しておりますので、そちらを読んでみてください!
基本的な演算子
新しい言葉が出てきましたが恐れることはありません。皆さんは、すでに演算子を使っています。演算子とは足したり引いたりなどの式で実行する演算を指定する記号のことです。実は「=」や「+」も演算子の1つです。
演算子には、実は多くの種類がありますが、ここではよく使用する代表的な演算子である算術演算子と比較演算子について解説します。
算術演算子
算術演算子は演算子の中で最も基本的な演算子で、「足す」「引く」「かける」「割る」といった四則演算などに使用する演算子です。
演算子 | 意味 | 例 |
---|---|---|
+ | 加算(足し算) | x + y |
- | 減算(引き算) | x ? y |
* | 乗算(かけ算) | x * y |
/ | 除算(割り算) | x / y |
% | 剰余算(割り算の余り) | x % y |
かけ算と割り算だけ数式とちょっと違う(かけるは「×」、割るは「÷」)ことと、見慣れない「%」があること以外は、見慣れた記号ですね。以下のようにプログラムを変更して確認してみましょう。
- (void)viewDidLoad { [super viewDidLoad]; // 足し算 int add = 1 + 1; NSLog(@"1 + 1 = %d", add); // コンソールに「1 + 1 = 2」が表示される // 引き算 int sub = 10 - 5; NSLog(@"10 - 5 = %d", sub); // コンソールに「10 - 5 = 5」が表示される // かけ算 int multi = 2 * 3; NSLog(@"2 * 3 = %d", multi); // コンソールに「2 * 3 = 6」が表示される // 割り算 int div = 9 / 3; NSLog(@"9 / 3 = %d", div); // コンソールに「9 / 3 = 3」が表示される // 割り算の余り int mod = 10 % 3; // 「%」は特別な文字のため「%%」と指定する必要がある! NSLog(@"10 %% 3 = %d", mod); // コンソールに「10 % 3 = 1」が表示される }
当然ですが、変数同士や変数と数字に対して演算することもできます。
int sum = num1 * num2; int price = tanka * 1.05;
Copyright © ITmedia, Inc. All Rights Reserved.