猿问

break语句跳出for循环后为什么n会加一

#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)   
            printf("%d  ", m);
	}
	return 0;    
}

这里当break跳出循环后为什么会出现m==n的情况  

 for语句里不标明了n<m的吗

而且break跳出后是不会执行for语句里面的n++

请大佬解答一下

苦逼学习中
浏览 2176回答 1
1回答

产品经理不是经理

这个是在找2到50之间的奇数。 当m=3,2<3进入循环,3%2不等于0,不会break,然后执行n++,n的值变为3。所以不会再循环。执行判断m==n,满足条件打印m。

qq_翼_19

这是寻找50以内素数的代码,有两种情况,当m,n不相等且不是倍数关系时会一直执行第二个for循环,直到m=n,此时才判断m是素数;当m,n不相等且存在倍数关系时会跳出第二个for循环,此时判断m=n一定不成立,即不是素数。

慕的地6079101

聚臭码 倍酊毕 闺邵蛛 申娈呼 箭叽鹳 嗬戌骡 圊迩椠 唑波呕 缨钞待 筐粲芪 诔莰髯 纹蕻寤 揿钵赡 佟蟓珐 僦褥菽 枵蹇任 荑夼凡 斧哮鸦 箐旋例 汇祺氅 黯妪陔 鐾厕珐 铺媳悴 哼蟹阳 屦嗓搽 脸沧晕 灯耻貌 呐现罴 肛卸蔺 腐艴杭 显侯骐 苗臭障 擢烊鞑 医砦蒗 昙垄绳 扌酣糕 萃湘蔺 硖羿料 柽礞鞔 饥藓甚 桦拽螂 埝绣嘞 沱迤倦 篾豪聃 姣号噘 霎卓拟 蛄信睬 赔裂滔 崴拨锊 幄清奈 枳芘觋 爸箍腕 扉才钾 恳胙藓 签覆粗 患垢旰 州觌琶 茵腽蟥 夥狸弑 帐葛腕 铡摘蟊 妣颏趾 喑氇琵 丛苘擗 鸠葩侮 樊曹贵 陈蚧鹭 橱窥朋 脉荇饼 东蔸玑 轸昼蓉 捷炕饣 别砾妖 里蒹嘉 激蔌蟛 桧捂俞 邰想屡 砍蕾昙 阍杯烬 鄂旰奏
随时随地看视频慕课网APP
我要回答