04-C风格读取循环
6.1.2 C风格读取循环
根据伪代码的设计思路,程序清单6.1可以用Pascal、BASIC或FORTRAN来编写。但是C更为简洁,下面的代码:
status = scanf("%ld", &num);
while (status == 1)
{
/* 循环行为 */
status = scanf("%ld", &num);
}
可以用这些代码替换:
while (scanf("%ld", &num) == 1)
{
/*循环行为*/
}
第二种形式同时使用 scanf() 的两种不同的特性。首先,如果函数调用成功, scanf() 会把一个值存入 num 。然后,利用 scanf() 的返回值( 0 或 1 ,不是 num 的值)控制 while 循环。因为每次迭代都会判断循环的条件,所以每次迭代都要调用 scanf() 读取新的 num 值来做判断。换句话说,C的语法特性让你可以用下面的精简版本替换标准版本:
当获取值和判断值都成功
处理该值
接下来,我们正式地学习 while 语句。