为什么while无法判断'\n'不符合循环条件?

图片说明
图片说明

我输入的是12345,'\n'的ASCII码是10,0~9的ASCII码是48~57,为什么当getchar识别到'\n'后,明明不符合条件,却还在循环?

while ('0'<= (c=getchar()) <= '9')
改成:
while ('0'<= (c=getchar()) &&  c<= '9')

因为:
while ('0'<= (c=getchar()) <= '9') 相当于 while (('0'<= (c=getchar())) <= '9') 相当于 while ((0或者1) <= '9')
数字0或者1都比‘9’小,所以永远为真。
c = getchar();
while('0'<=c && c<='9')
    pass;

表达错误,条件应该表达为('0' <= c && c <= '9')。
你这样的表达相当于 ('0' <= c) <= '9',条件永远为真。
请区分数学表达式和编程语言表达式。