一个有关输入输出的基本问题

while(scanf("%d%d",&n,&m)==2 &&n &&m),对于这个条件我知道的是scanf("%d%d",&n,&m)==2是用来判断是否成功有两个输入,可是在这里,&&n &&m的作用是什么了?是在做与运算吗?如果是,那这样做的作用是什么了?不明白。。。 求大神解答

他们之间是与运算
scanf("%d%d",&n,&m)==2 &&n &&m表示输入的数是两个并且 m不等于0 并且n 不等于0 那么满足循环条件,进行循环。不然就退出循环。
和语句
while(scanf("%d%d",&n,&m)==2)
{
if(m==0|| n==0)
{
break;
}
}
是一个意思
那样写代码更简洁。