変数の宣言とデータ型
NSIntegerとintの違い
int型には16ビットのshort int、32ビットのint、64ビットのlong intがあります。intではなくNSIntegerにするとビルド時に指定される32ビット、64ビットに応じてビット長が変わります。unsigned intとNSUintegerの関係も同じです。
浮動小数点
整数型の変数に小数点付きの値を入れると、小数点以下は切り捨てとなります。小数点を扱うデータ型はdoubleとfloatがあります。
float num = 3.14f;
floatには最後にfをつけます。
int a = 5,b = 3; float ans = (float)a / b; NSLog(@"答え %.1f",ans);//答え 1.7
整数同士の計算は結果も整数になるので、上のような場合型の変換(キャスト)を行います。
BOOL型
BOOL isDone; isDone = YES; if (isDone) { NSLog(@"完了"); }else{ NSLog(@"まだです"); }
booleanはBOOLで宣言できます。
char
char rank = 'D'; NSLog(@"rank = %c",rank);
char型には半角英数文字を1文字入れることができます。代入するときはシングルクオテーションで囲みます。
typedef
typedef NSUInteger Days; Days shigoto = 30; Days yasumi = 5; NSLog(@"仕事は%d日あって、休みは%d日ありますよ!",shigoto,yasumi); //仕事は30日あって、休みは5日ありますよ!
typedefを使うと、型の名前を好きなように変えることができて、コードがわかりやすくなります。
ポインタ
NSString *msg; NSDate *now; msg = @"大爆笑"; now = [NSDate date]; NSLog(@"%@ %@",msg,now);//大爆笑 2014-04-13 09:11:00 +0000
C言語と同様にポインタを使うときは「*」を変数の前につけます。
定数の宣言
const
const int LEVEL = 27; NSString * const COLOR = @"赤色"; NSLog(@"%d %@",LEVEL,COLOR);//27 赤色
constをつけると定数を宣言できます。定数の値は後から変更できないので、定数の宣言とともに値も入れます。
enum
enum{ NUM_A = 10, NUM_B,//11 NUM_C//12 }; int sum = NUM_A + NUM_B + NUM_C; NSLog(@"%d",sum);//33
enumは列挙型と呼ばれるデータ型で、定数をたくさん宣言したいときに便利です。constをつけなくてもよく、連続した数なら予想して値を入れるので記述が楽です。
define
#define VOL 100//定数 #define menseki(a,b) a * b//関数 @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSLog(@"量は%d",VOL);//量は100 NSInteger ans = menseki(2,3); NSLog(@"ans %d",ans);//ans 6 }
「#define(マクロ定義)」で擬似的に定数と関数を宣言できます。