Chinaunix首页 | 论坛 | 博客
  • 博客访问: 988601
  • 博文数量: 158
  • 博客积分: 4380
  • 博客等级: 上校
  • 技术积分: 2367
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-21 10:45
文章分类

全部博文(158)

文章存档

2012年(158)

我的朋友

分类: C/C++

2012-11-15 11:04:14

C/C++语言中 if( a>'9' ) a+=7 等同于 a>'9'?(a+=7):0 等同于 a>'9'&&(a+=7) 等同于 a<='9'||(a+=7);

if( a>'9' ) a+=7 清晰易懂,所以能用 if 的情况下就不要使用其他取巧的方法,但也应该知道if只能作为语句,而不能作为表达式,比如一个遍历ODBC记录集的代码,使用 if 语句只能如下:

CRecordset rs;
...
if( !rs.IsBOF() )
{
    for( rs.MoveFirst(); !rs.IsEOF(); rs.MoveNext() )
    {
        ......
    }
}

而使用 || 可以如下:

for( rs.IsBOF() || rs.MoveFirst(); !rs.IsEOF(); rs.MoveNext() )
{
    ......
}
阅读(5052) | 评论(28) | 转发(0) |
给主人留下些什么吧!~~

网友评论2012-11-15 11:05:43

UsingSystem
如果打开数据库没有记录,IsBOF is TRUE, 那么会继续执行rs.MoveFirst();

网友评论2012-11-15 11:05:28

周星星
除非恶意搞鬼,否则如果 rs.IsBOF() 为 true,则 rs.IsEOF 也一定为 true,因此如果 rs.IsBOF() 为 true,则这个循环不会执行。

网友评论2012-11-15 11:05:13

sumtec
这两个写法不完全相等!

如果rs在begin,那么:
对于前者完全跳过这个循环;
对于后者,则运行这个循环。