请问一下这个while语句 谢谢 各位!

  int i, num;
    i = 1;
    num = 51;
    while (i <= 51) {
        if (num % i == 0) {
            printf("%d\n",i);
        }
        i++;
    }
            为什么这个i++要写在if语句外面啊

while里面有两个语句,前面那个是if的复合语句,后面那个是i++语句;如果i++在if里面,那么while就只有一个语句,i++就没有用了

找51的约数 不写在外面怎么遍历呢 if语句只是输出约数的作用

如果在if里面则是死循环,第一次执行时num为51,i为1不执行IF括号内

无论i是否能被51整除,都要计算下一个数,当然每次循环都要加一。

i++写在if语句里面就是死循环了

同一楼:i++,写在if语句外面,控制while从1遍历到51

你这个是要遍历1到51的数值,if里面的句子只是执行判断当前的数值是否满足被num(51)整出和遍历无关,所以i的添加要在外面,如果对编程的循环语句还有疑问,建议你先看一下这篇内容:Java中的循环语句

若 if 条件不成立,接下来的步骤还需进行下去,i需要继续增加,此处将 i++ 写在 if 外面,无论if成立与否,都会执行 i++ 命令,以便进行后续操作。
你可以试着将其写在里面运行一下

嗯嗯,很感谢大家的回答,谢谢!

学习学习了!!放里面就是计算出多少个约数,不过得另外加变量

将i++放在if语句外面,将i从1至51递增,无论if条件是否成立;若将i++放在if语句中,如果条件不成立,程序将会进入死循环