c语言中的问题,while的使用

while(r=a%b,r!=0)和r=a%b;while(r!=0)有什么不一样

第一个while会一直执行r=a%b和r!=0两个表达式,又以r!=0的值来作为循环条件,而如果循环体内有对a,b或者r的改变,比如a--啥的,就会更新循环的条件。
第二个while只会一直执行r!=0,且以它的值做循环条件,就算循环体内有啥条件改变了a和b也改变不了它的循环条件,因为r=a%b定义在循环外边,当然要是改变了r那就是改变了循环条件。
其实差别就是r=a%b的运算次数不一样,一个一次,一个多少次都行

当然不一样
第一种每次循环都计算a%b,第二种while循环是不反复计算的

r=a%b,r!=0这个是逗号表达式,取r!=0的值。