黑马程序员-----C语言学习之流程控制

流程控制


顺序结构:默认的流程结构。按照书写顺序执行每一条语句。

选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。

循环结构:在给定条件成立的情况下,反复执行某一段代码。



1、 顺序结构:
默认的流程结构。按照书写顺序执行每一条语句。

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.循环结构

内容较多将在以后的博客中逐步体现;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值