流程控制
顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
循环结构:在给定条件成立的情况下,反复执行某一段代码。
默认的流程结构。按照书写顺序执行每一条语句。
2、 分支结构:
<1>if(表达式/常量/变量){语句块}
原理:1.先计算小括号中的表达式的值 如果是真就会执行后面大括号中的语句块 ,如果为假就不会执行后面的大括号的语句块;
<2> if(表达式1){} else{if(表达式2){}} 不管表达式为真还是为假都会执行一个语句;
第一个例子“游戏是不是5”;//日期格式化
NSDate *date = [NSDate date];
// 日期格式化类
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// y 年 M 月 d 日
// m 分 s 秒 H (24)时 h(12)时
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
//将date转化为formatter对应格式的字符串
NSString *str = [formatter stringFromDate:date];
第二个例子 判断一个学生成绩的等级;
//日期格式化
NSDate *date = [NSDate date];
// 日期格式化类
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// y 年 M 月 d 日
// m 分 s 秒 H (24)时 h(12)时
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
//将date转化为formatter对应格式的字符串
NSString *str = [formatter stringFromDate:date];
if语句的注意事项 如果写成if();后面没有大括号 那么它是一个空语句 但没错;如果if之后的代码块,如果只有一句话则可以省略大括号 例如
int a=3 ;
if(a>2);
printf("a>2\n");它同样可以运行 省略了大括号;
永真式和永假式:if(1){}大括号里的内容永远执行 if(0){}大括号里的内容永远不执行
和电脑猜拳游戏的实现:
//日期格式化
NSDate *date = [NSDate date];
// 日期格式化类
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// y 年 M 月 d 日
// m 分 s 秒 H (24)时 h(12)时
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
//将date转化为formatter对应格式的字符串
NSString *str = [formatter stringFromDate:date];
switch语句 格式是 switch(){ case1:语句;case1:语句;case1:语句;default:语句;}
注意事项 :
1 switch语句的表达式类型: 可以放一个整型的变量;int num=10;switch (num)
可以放一个整型常量;switch(10)
可以放一个返回值是整型的表达式;switch (5+5),num = 5+5
可以放可以转换为int类型的表达式;switch ('a'+'a')(因为是’a‘其实就是97是一个整型);
2.case语句可以有多行语句,可以加括号{},也可以不加
3.break语句可以加也可以不加 ;
4.case语句的格式:case 10: 常量表达式 (中间的空格和冒号都不能省略)
5.case取值可以是常量 case 10:
6.case也可以是常量表达式 case 5 + 5:
7.case的穿透问题,同样适用于default;
8.当default语句放最后时 他后面的break是可以省略的 不是最后就必须加break;
9.case后面不能放实数
case的穿透问题:指某个case语句执行完成后,并没有结束,而直接向下执行其他的case语句 这种现象称为case穿透;
如何防止case穿透呢?我们需呀偶在每一个case语句结束之后,加上一句话break;它表示结束这个switch语句;
if语句与switch语句的转换例子:学生成绩
//日期格式化
NSDate *date = [NSDate date];
// 日期格式化类
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// y 年 M 月 d 日
// m 分 s 秒 H (24)时 h(12)时
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
//将date转化为formatter对应格式的字符串
NSString *str = [formatter stringFromDate:date];
分支比较多且无法穷尽或进行大量列举是最好用if
如果分之数量不是很多,但是if代码量比较大的时候 可以选用switch
判断季节的程序:
//日期格式化
NSDate *date = [NSDate date];
// 日期格式化类
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// y 年 M 月 d 日
// m 分 s 秒 H (24)时 h(12)时
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
//将date转化为formatter对应格式的字符串
NSString *str = [formatter stringFromDate:date];
实现计算器加减乘除程序:
//日期格式化
NSDate *date = [NSDate date];
// 日期格式化类
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// y 年 M 月 d 日
// m 分 s 秒 H (24)时 h(12)时
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
//将date转化为formatter对应格式的字符串
NSString *str = [formatter stringFromDate:date];
3.循环结构
内容较多将在以后的博客中逐步体现;