最近在学C ,有一句代码把我看懵了。。。
int getnights(void)
{
int nights;
printf("How many nights are needed? ");
while (scanf("%d", &nights) != 1)
{
scanf("%*s"); //dispose of non-integer input
printf("\t Please enter an integer , such as 2.\n");
}
return nights;
}
while (scanf("%d", &nights) != 1) 中的 != 1 到底是啥意思嘛?
经过一番努力,终于搞明白了~~~
while (scanf("%d", &nights) != 1) // 表示 如果赋值失败,会执行"代码1"; 如果赋值成功,不会执行"代码1"
{
代码1
}
while(scanf("%d",&n)==1) // 表示如果赋值失败,不会执行”代码1“; 如果赋值成功,会执行 “代码1”
{
代码1
}
简单点,可以认为 scanf("%d", &nights) 赋值成功就是 1
1 != 1 , false
1 == 1 , true
亲爱的读者,你学到了么?