关于一个while的询问

请问一下这个while的括号内的内容怎么理解啊?

while(scanf("%d",&z)&&(i))


循环执行要同时满足两个条件:
1、从键盘输入的数是整数
2、i<n

这个 while 循环的条件表达式是一个逻辑表达式,由两个子表达式组成:

  • scanf("%d",&z):调用 scanf() 函数从标准输入中读取一个整数,并将其存储到变量 z 中。如果读取成功,返回值为非零值(即真),否则返回零值(即假)。
  • (i<n):比较变量 i 和变量 n 的大小,如果 i 小于 n,返回真,否则返回假。

将这两个表达式用逻辑与 && 连接起来,表示两个表达式的值都必须为真才能使整个表达式的值为真。

  • 因此,这个 while 循环的条件表达式的意思是:
    • 当读取一个整数成功(即 scanf("%d",&z) 返回真)并且变量 i 小于变量 n 时(即 (i<n) 返回真),循环执行。
    • 如果读取整数失败(即 scanf("%d",&z) 返回假)或者变量 i 大于等于变量 n(即 (i<n) 返回假),退出循环。

如果输入的是一个整数,并且已经输入的整数个数还不足n个时,循环条件成立

循环条件是
成功输入了一个整数 并且 i<n 为真。
当这两个条件同时满足时执行循环