for循环和while循环的嵌套

for里嵌套while循环,当while循环结束是不是整个循环就结束?

#include<stdio.h>
main(){
    int i,n;
    scanf("%d",&n);
    for(i=2;i<n;i++)
    while(n){
        if(n%i==0)              
            printf("%d",i);     
        else 
            break;
        n=n/i;                
            if(n>=i){
                printf("*");
                if(n==i)
                    break;}                  
    printf("%d",n);}

如这个程序,如果n的值输入为16,当while循环结束时,整个循环是不是就结束了,i是不是就可以不用++了?

if(n%i!=0)时,执行break是跳出while循环
如果要跳出for循环,i必须≥n(即i大于等于17)

试一试把while循环外加一组大括号

break语句只能跳出当前循环,不能跳出二层循环