#import <Fountdation/Foundation.h>
int main(int argc, const * char argv[]){
@autoreleasepool{
int a,b;
int result;
a = rand()%100;
b = rand()%100;
NSLog(@"%d + %d = ",a,b);
NSLog(@"plz input your result:");
scanf("%d",&result);
if(a+b==result){
NSLog(@"correct!");
}else{
NSLog(@"False!");
}
}
return 0;
}
//over
(1)#import是导入文件的做法,和Python里面一样,一般写在开头。而C和C++文件里面是#include。#import比#include的好处是可以避免重复引入文件。
(2)Foundation.h里的.h是头文件的后缀,OC文件的后缀是.m,C文件的后缀是.c,C++文件的后缀是.cc等等。为什么提到C语言和C++?因为OC和它们属于一个家族,很多东西可以兼容使用。
(3)@autoreleasepool是内存自动释放函数,你可以理解成是一种内存管理的机制,至于怎么管理内存的,以后再说。
(4)NSLog()就是一个输出函数,与C里面的printf()和Python里面的print类似。为什么这个函数名这么奇怪呢?我们打开Foundation.h文件可以发现,这个头文件里面其实包括了很多函数,我们初学者一般只是把Foundation.h整个导入进来而不是一个个导入里面的函数,这里面的函数你会发现基本都是以NS为前缀来命名,这是NEXTSTEP的缩写,而NEXTSTEP是乔布斯离开苹果后创建的NeXT演化过来的,所以,情怀呗,就这样约定俗成了。而NSLog()的最大特点是输出的字符串前面要加一个@,好吧,不要问为什么,因为这个语言就是这么规定的。
(5)scanf()就是一个输入函数,和Python的raw_input()函数类似。
(6)//over里的//就是注释标记,多行的用/* */。
(7)里面变量这些都严格区分大小写,这一点在很多语言都这样。
(8)关于变量,可以用的时候再定义,而不是像C一样都把变量在一开始就定义在最上面。