scanf 函数是有返回值的,只是通常大家用的时候不会去管这个返回值,你可以尝试定义一个 int 类型数据,让这个 int 类型数据接收 scanf 函数的返回值,你会发现,通过 scanf 输入了几项,得到的返回值就是多少。
while 语句中,你虽然没有接收,但由于 scanf 返回值为接收的参数项数,这里实际是让 scanf 函数的返回值与2判断是否相等。 那么 这里的 scanf() == 2 就是一个逻辑表达式,这里的 && 也是逻辑表达式运算符,代表与 n 做逻辑与。
== 是判断两个符号两端是否相同,比如, 1 == 0 + 1,就会返回 true,1 == 0 就会返回 false。
&& 是逻辑运算符表示且,比如,你学习好并且很帅,就会返回 true,你学习不好且帅就会返回 false。
大体就是这个意思。