为什么a=b时执行第二个if而不是直接跳出循环呢?还有,两个if为止交换运行的结果也不对呢?

来源:百度知道 编辑:UC知道 时间:2024/05/31 12:11:07
#include<iostream>
using namespace std;
void main()
{int a,b,c=0;
for(a=2;a<=100;a++)
{for(b=2;b<=a;b++)
if(a%b==0)
break;
if(a==b)
c=c+a;}
cout<<c<<endl;
}

你仔细看第二个for,没有括号的,你的a和b是没有相等的时候,所以你的break就不存在执行的问题了

另外:
如果你加了括号,你的break跳出去的应该是内层的for,外层的跳不出去,也就是说break跳出去的只是自身大括号内的循环

if 换成 else