OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8094|回复: 5

关于break疑问 求解答

[复制链接]

51

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2012-5-20
在线时间
0 小时
发表于 2012-7-9 16:22:43 | 显示全部楼层 |阅读模式

1、u8 RTC_Get(void)
{
 static u16 daycnt=0;
 u32 timecount=0;
 u32 temp=0;
 u16 temp1=0;  
   
 timecount=RTC->CNTH;//得到计数器中的值(秒钟数)
 timecount<<=16;
 timecount+=RTC->CNTL;   

 temp=timecount/86400;   //得到天数(秒钟数对应的)
 if(daycnt!=temp)//超过一天了
 {  
  daycnt=temp;
  temp1=1970; //从1970年开始
  while(temp>=365)
  {    
   if(Is_Leap_Year(temp1))//是闰年
   {
    if(temp>=366)temp-=366;//闰年的秒钟数
    else break; 
   }
   else temp-=365;   //平年
   temp1++; 
  }  
  timer.w_year=temp1;//得到年份
  temp1=0;
 } 
想请问如果执行了else 中的break,
那么退出的语句是else
还是直接退出else所在的while,且不执行此while内的其他语句( else temp-=365;      temp1++;  )?
2、
float pi=3.14;
for(r=1;r<=10;r++)
{
    area=pi*r*r;
if(area>=100)break;
printf("r=%f,area=%f\n",r,area);    
}
如果当area=100,执行if(area>=100)break;
那么break是退出if继续执行printf
还是直接退出for,不执行printf, 希望师兄指教 
我自己感觉是都选择后者 不知道对不对

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-7-9 18:22:55 | 显示全部楼层
回复【楼主位】beisiqiu:
---------------------------------
1,c语言基础问题.没见过break是退出else的.
2,又是基础问题,我也没见过break是退出if的.
囧.....
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

51

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2012-5-20
在线时间
0 小时
 楼主| 发表于 2012-7-11 11:16:29 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
1、那为啥switch的else break是退出switch啊 ?
2、那如果
float pi=3.14;
while(1)
{
    for(r=1;r<=10;r++)
    {
        area=pi*r*r;
    if(area>=100)break;
    printf("r=%f,area=%f\n",r,area);    
    }
}
如果当area=100,执行if(area>=100)break;
那么break是退出for还是while呢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-7-11 12:56:54 | 显示全部楼层
自己软件仿真找答案吧.
另外,c语言基础问题,问你c语言老师,或者买本c语言的书看看比较实在.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

46

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1544
金钱
1544
注册时间
2012-4-9
在线时间
80 小时
发表于 2012-7-11 16:32:55 | 显示全部楼层
break应该是跳出整个循环语句,执行后面的语句吧。
STM32
回复 支持 反对

使用道具 举报

51

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
347
金钱
347
注册时间
2012-5-20
在线时间
0 小时
 楼主| 发表于 2012-7-11 17:10:09 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
按您说的 调试后 是跳出离esle break最近的循环体
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 18:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表