为什么这个break语句在if内就没效果


#include <iostream>
using namespace std;
int main()
{
    int a,b;
    int n=0;
    for(a=1;a<=98;a++)
        for(b=1;b<=98;b++)
        {
            if(3*a+2*b+0.5*(100-a-b)==100&&(100-a-b)>0)    
            {
                cout<<a<<"\t"<<b<<"\t"<<(100-a-b)<<endl;
                n++;
            }
            if(n==3)break;//这一句放到if内就没有效果
        }
}

img


有效果啊,三个数为一组然后n++,等到n==3不 就结束了吗!