循环条件的写法问题
#include <bits/stdc++.h>using namespace std;
int main(){
int a, b;
int r;
scanf("%d%d", &a, &b);
while(r = a % b){//这里的条件
a = b;
b = r;
}
printf("%d", b);
return 0;
}
如上 , 是一个求最大公因数的程序 , 但是不理解 while(r = a % b) 这个条件 , 这不是赋值语句吗
那么 , 它什么时候是真 , 什么时候为假呢
求解释 a%b 不等于 0 的时候为真
a%b 等于 0 的时候为假 ckblt 发表于 2022-1-28 16:06
a%b 不等于 0 的时候为真
a%b 等于 0 的时候为假
所以跟 r =没有关系是嘛{:10_277:} r=除了赋值其他都没用 例子:
#include <stdio.h>
int main()
{
int i = 0;
printf("%d\n", i = 5); // 输出 5
printf("%d", i); // 输出 5
return 0;
} ckblt 发表于 2022-1-28 16:25
例子:
好嘞 , 谢谢 本帖最后由 jhq999 于 2022-1-28 16:35 编辑
看错了
页:
[1]