return:跳出循环,退出函数
break :跳出循环,执行循环后的下一个步骤
continue :跳出当前循环值,执行循环下一个值
keil环境,编写程序,测试执行结果
程序如下:
/*return,break,continue*/
/*return test*/
void ReturnTest(void)
{
uint8_t i;
printf("\r\nReturn test start\r\n");
for(i=0;i<10;i++)
{
if(i == 3)
{
return;
}
printf("%d ",i);
}
printf("\r\nReturn test done\r\n");
}
/*break test*/
void BreakTest(void)
{
uint8_t i;
printf("\r\nBreak test start\r\n");
for(i=0;i<10;i++)
{
if(i == 3)
{
break;
}
printf("%d ",i);
}
printf("\r\nBreak test done\r\n");
}
/*continue test*/
void ContinueTest(void)
{
uint8_t i;
printf("\r\nContinue test start\r\n");
for(i=0;i<10;i++)
{
if(i == 3)
{
continue;
}
printf("%d ",i);
}
printf("\r\nContinue test done\r\n");
}
int main(void)
{
Init();//config RCC_Configuration();和USART_Configuration();
while(1)
{
ReturnTest();
BreakTest();
ContinueTest();
delay(1000);//ms
}
}
串口测试结果:
Return 测试打印0 1 2后,条件成立,执行Return ,程序没执行到打印Return test done,直接跳出函数
Break 测试打印0 1 2后,条件成立,执行Break ,跳出大循环,执行打印Break test done
Continue 测试打印0 1 2后,条件成立,执行Continue ,跳出3,直接往下判断,然后打印4 5 6 7 8 9,循环完成后,跳出循环,执行打印 Continue test done
具体测试结果如下:
[10:14:15.608]
[10:14:15.608] Return test start
[10:14:15.608] 0 1 2
[10:14:15.608] Break test start
[10:14:15.608] 0 1 2
[10:14:15.608] Break test done
[10:14:15.608]
[10:14:15.608] Continue test start
[10:14:15.608] 0 1 2 4 5 6 7 8 9
[10:14:15.617] Continue test done
[10:14:15.617]