//block块(数据类型) 封装的一段具有特定功能的代码段
//函数有函数名,block没有名字,也可以叫做匿名函数;函数不能做参数传递,block可以作为参数传递;
//形式:
/* 返回值类型,(^ block变量名)(参数列表)=^(参数列表){ 代码段 return(如果) } */
//调用
//block变量名
//return(如果返回值类型不是void,就将返回值return出去)
//diyBlock是给int(^)(int a,int b)这种block类型定义的一个新名字,以后我们使用divBlock就表示int(^)(int a,int b)这个类型
typedefint(^divBlock)(inta,intb) ;
#import
intmain(intargc,constchar* argv[]) {
@autoreleasepool{
}
}
//定义一个block#importvoid demo0();
void demo4();
//void demo1();
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 无参无返的block
// 调用一个block
//demo0();
//demo1();
demo4();
}
return 0;
}
//wucanwufan
// 写一个block ,用for循环,打印三遍Hello Word
void demo0(){
void (^hi)() = ^(){
for(int i = 0; i <= 3; i++){
NSLog(@"Hello Word!\n");
}
};
hi();
}
//这是一个有参无返的block;
/*
void (^block名)(参数列表)= ^(参数列表)
*/
// 定义一个block,用for循环打印三次hello word,n,用键盘该输入
void demo1(){
void (^daying)(int n) = ^(int n){
for(int i = 0; i <= n; i++){
printf("Hello Word!\n");
}
};
int n;
printf("请输入n\n");
scanf("%d",&n);
daying(n);
}
//无参有返的block
/*
返回值类型(^block名)() = ^(){}
*/
void demo3(){
// 无参有返
int (^peopleCount)() = ^(){
return 28;
};
// bolck调用
int count = peopleCount();
NSLog(@"count = %d",count);
// 定义一个block返回字符串
char *(^string)() = ^(){
return "Hello";
};
//调用
char *str = string();
NSLog(@"str = %s",str);
}
//定义一个新的名字
typedef int(^diyBlock)(int a, int b);
void demo4(){
// 写4个block,来做四则运算,a、b是通过键盘输入
diyBlock jian = ^(int num1, int num2){
if (num1 > num2) {
return num1 - num2;
}else{
return num2 - num1;
}
};
diyBlock add = ^(int a, int b){
return a + b;
};
diyBlock cheng = ^(int a, int b){
return a * b;
};
diyBlock chu = ^(int a, int b){
if (b == 0) {
NSLog(@"除数不能为0");
return 0;
}else{
return a / b;
}
// int (^add)(int a, int b) = ^(int a, int b){
// return a + b;
// };
//
// int (^cheng)(int a, int b) = ^(int a, int b){
// return a * b;
// };
//
// int (^chu)(int a, int b) = ^(int a, int b){
// if (b == 0) {
// NSLog(@"除数不能为0");
// return 0;
// }else{
// return a / b;
// }
};
int a;
int b;
NSLog(@"请输入两个整数\n");
scanf("%d%d",&a,&b);
int num = add(a,b);
NSLog(@"整数之和为:%d",num);
int num1 = chu(a,b);
NSLog(@"整数相除为:%d",num1);
int num2 = cheng(a,b);
NSLog(@"整数相乘为:%d",num2);
int num3 = jian(a,b);
NSLog(@"整数相减为:%d",num3);
}