[bo][un]p1s[/un] 在 2008-11-13 20:24 的发言:[/bo]
while(scanf("%d%d",&m,&n),m<=0||n<=0)
等价于
do
{
scanf("%d%d",&m,&n);
}while (m<=0 || n<=0);
可读性的确是后者好,但是占的代码行数略多
看各人习惯了
明显不对嘛,注意人家的while()后面是没有分号的。
应该相当于4L所说的那样子。
其实可读性也没有怎么不好,就是读取->判断嘛,很自然的,只是没见过所以觉得厌恶吧。
这种表达式其实和自然语言很像,所以我经常用
while (scanf("%d%d", &m, &n), //读取
m >= 0 && n >= 0) // 判断
{
//...
}
不过,更常用的是这样的语法:
while (scanf("%d%d", &m, &n) == 2 && m >= 0 && n >= 0)
{
//...
}
觉得还是很清晰的……
PS 最近禁网,因为要考试了,说不定某些人要因为我的消失而高兴一阵子呢~~