我的IOS学习历程-第二天
基本上都是基础知识
以下左靠齐的是源代码一些示范例子 不左靠齐的为知识点
#import <Foundation/Foundation.h>
//宏定义把工程中所有的WL全部替换成10
//注意结束时千万不要加分号否则会将;也替换上去
#define WL 10
int main(int argc,constchar * argv[]) {
@autoreleasepool {
//Bool数据类型是一种数据类型
//它只有0和1两个值
//系统通过预编译把0编译成NO,把1编译成YES
//所以咱们在工程当中一般只看见YES和NO
//printf("%d",WL);
//声明一个Bool变量初值为NO
// BOOL b = YES;
// printf("%d",b);
//bool是C语言中使用的
//BOOL是OC中使用的
//定义两个整形变量比较大小打印比较结果
//int number1 = 5;
//int number2= 10;
//关系运算符 > >= < <= == !=
//关系运算符优先级 (> >= < <=)是同级关系大于 (== !=)
//如果成立的话返回YES也就是1反正NO也就是0
//BOOL result = number1 < number2;
//printf("%d",result);
//注意==是判断两边是否相等是双等号
//练习 1 == 3 > 1相当于 1 == (3 > 1)
//声明一个BOOL变量接收返回结果
// BOOL result1 = 1 == 3 > 1;
// printf("%d",result1);
//逻辑运算符 && || !
// &&一假则假(必须两边全是真的整个逻辑表达式才是真的)
// ||一真则真(只要有一边是真的整个逻辑表达式就是真的)
// ! 对结果进行取反非真即假
// 终极口诀:非0即真
// 逻辑与短路现象
// 逻辑与如果前面为假那么后面的就不执行了这就是短路现象
// int a = 5;
// int b = 10;
// BOOL result = a < b && a++;
//逻辑或的短路现象
//逻辑或如果前面的为真整个表达式就为真那么后面的部分就不需执行
// int a = 5;
// int b = 10;
// BOOL result = a > b || a++;
//总结:逻辑与和逻辑或都有短路现象如果前面判定成功则后面的部分不需执行
//程序的三种结构
//1.顺序结构
//2.分支结构(重点)通过一个判断来选择执行哪个语句
//3.循环结构
// if语句的写法
/**
* if(判断语句){
要执行的语句
}
如果判断语句为真就执行大括号中的语句
如果判断语句为假就跳过大括号中的语句不执行
*/
//需求:定义两个整形变量如果a>b的话打印a比b大
//注意 if()后面不要加分号加了大括号的内容将与if无关无论如何都将执行大括号内语句
// int a = 10;
// int b = 25;
//
// if (a > b) {
// printf("a比b大\n");
// }else{
// printf("a比b小\n");
// }
//练习如果从控制台输⼊⼀个字符,如果输⼊的是m,则输出男性
//否则输出⼥性,那怎么实现呢?
//声明一个字符型变量
// char a = 0;
// printf("请输入一个字符\n");
// scanf("%c",&a);
// if (a == 'm') {
// printf("男性\n");
// }else{
// printf("女性\n");
// }
/* if语句的第二种形式
* if(判断条件) {
语句1;
} else {
语句2;
}
不管if语句哪种形式首先要看的就是判断条件
条件成立执行语句1
条件不成立执行else后面大括号部分(也就是语句2)
终极口诀:分支结构中只执行一个分支中的语句
*/
//练习2:输⼊⼀个年份,判断该年份是否是闰年?如果是闰年,则输出该年是闰年,否则输出该年不是闰年。
// int year = 0;
// printf("请输入年份\n");
// scanf("%d",&year);
// BOOL a = ((year % 4 == 0)&&(year % 100 != 0))||(year % 400 == 0) ;
// if (a == 1) {
// printf("闰年");
// }else{
// printf("不是闰年");
// }
//if的第三种形式(级联式)
/**
* if(判断条件1){
语句1;
}else if(判断条件2){
语句2;
}...else if(判断条件x-1){
语句x-1;
}
else{
语句x;
}
首先先判断条件1不成立不执行语句1
继续判断条件2不成立不执行语句2 ......
如果前面的全部不成立,else后面无判断条件,则执行else后面的语句
*/
//实际上输入一个字符相当于输入一个 0-255的数
//练习3从键盘输⼊⼀个字符,如果是数字打印this is digital,如果是⼤写字⺟,打印this is capital letter,如果是⼩写字⺟,打印this is letter,如果是其他字符,打印other。
// char a = 0;
// printf("请输入一个字符\n");
// scanf("%c",&a);
// if (a >= 48 && a <= 57) {
// printf("this is digital ");
// } else if (a >= 65 && a <= 90) {
// printf("this captial letter");
// } else if (a >= 97 && a <= 122)
// {
// printf("this is letter");
// }
// else{
// printf("other");
// }
//
//枚举类型
/**
定义枚举类型
enum 枚举类型名字{
枚举值的列表
};
*/
//需求:创建一个枚举的值分别为春夏秋冬
//枚举的值默认是从0开始的依次递增
//也可以指定其中一个枚举的值后面的值从指定开始依次递增
// enum season{
// spring = 1,(注意枚举值要用逗号隔开)
// summer,
// autumn,
// winter
// };
// printf("%d",summer);
//条件表达式 (三目运算符)
//判断条件 ?返回值1 :返回值2;
//如果判断条件成立就返回值1反之返回返回值2
//需求:定义两个整形变量打印比较大的一个(用条件表达式)
// int a = 0;
// int b = 0;
// printf("输入两个整数\n");
// scanf("%d,%d",&a,&b);
// int c = a > b ? a : b;
// printf("%d",c);
//一般提议使用if形式提高代码阅读性
// switch语句
/**
* switch (整形表达式(数字或者字符)) {
case 值1(数字或字符):
执行的语句1
break;//跳出整个switch语句
case 值2(数字或字符):
执行的语句2
break;
...
default:
执行的语句X//如果前面的语句都没执行就执行default后面的语句
break;
}
*/
// int a =0;
// printf("请输入一个数\n");
// scanf("%d",&a);
// switch (a) {
// case1:
// printf("spring");
// break;
// case2:
// printf("summer");
// break;
// case3:
// printf("autumn");
// break;
// case4:
// printf("winter");
// break;
// default:
// printf("error");
// break;
// }
//
//
//
//
// }
// return0;
//}
//定义一个枚举提高阅读性
// enum season {
// spring = 1,
// summer,
// autumn,
// winter
// };
// int a = 0;
// printf("请输入一个数\n");
// scanf("%d",&a);
// switch (a) {
// case spring:
// printf("he");
// break;
// case summer:
// printf("sa");
// break;
// case autumn:
// printf("ava");
// break;
// case winter:
// printf("faw");
// break;
// default:
// printf("eee");
// break;
// }
//定义一个枚举提高阅读性
// enum season {
// spring = 1,
// summer,
// autumn,
// winter
// };
// int a = 0;
// printf("请输入一个数\n");
// scanf("%d",&a);
// switch (a) {
// case spring:
// printf("he");
// break;
// case summer:
// printf("sa");
// break;
// case autumn:
// printf("ava");
// break;
// case winter:
// printf("faw");
// break;
// default:
// printf("eee");
// break;
// }
// switch语句注意事项:
// 1. default可以省去
// 2. default位置可以变,只要所有case都没有匹配成功,就会去执行default后面的语句
// 3.可以多个case运行一个语句快
// switch (1) {
// case 1:
// case 2:
// case 3:
// case 4:
// printf("s");
// break;
//
// }
// 4. case中定义变量需要加{}
// switch (1) {
// {case 1:
// printf("1");
// int a;
// printf("%d",a);
// break;
// }
// default:
// break;
// }