天外飞鸟
2016-08-07 12:52
#include <stdio.h>
int main()
{
int m, n;
for(m=2; m<=50; m++)
{
for(n=2; n<m; n++)
{
if( m%n==0 ) //什么条件下跳出当前循环
break //这里应该退出当前循环了
}
if(m == n) //n循环结束后,如果m=n的话就输出m
printf("%d ", m);
}
return 0;
}
这里面,在if()完后,在输入break;的时候,为什么不用输入 { }?
如果条件为真,执行break;仅此一条语句而已,不用加语句块符号{}
如题。
m=2时,判断m是否小于等于50.成立继续运行。
那么问题来了。假设m=51.不符合怎么办。
答:有大括号时。因为m初始值不符合表达式二。大括号中一律不执行。n的for循环也在大括号中,所以n的for循环也不执行。
无大括号时。因为m初始值不符合表达式二。程序继续运行,到达n的for循环n小于51,循环n的for循环。
C语言入门
926020 学习 · 20793 问题
相似问题