1.2复合表达式与if语句书写技巧

复合表达式由常量、变量、函数和运算符组成书写应注意:

1、不要过于复杂

如:x=y>z || a<b || i+j>=i-c

 

2、不要与数学表达式混淆

如:if( x<y<z )   //并不表示 (x<y) && (y<z),而是 (x<y)<z

 

3、运算符优先级和结合性直对结果的影响

 

4、表达式中有些部分可能没参加运算

如:int a=1,b=2

      if( a<b || ++a )

             cout<<a<<endl;

输出结果为1

a<b 为真时,++a不再参加运算

 

 

 

if语句书写技巧与注意问题:

1、常量放在条件表达式的左侧

如:int *p = new int[10]

      if( p == NULL )

      {

             cout<<"error!"<<endl;

             exit(0);

       }

上面条件表达式 p == NULL ,有时粗心会写漏一个‘=’,即写成p = NULL , “p = NULL ”为合法表达式,编译时不会报错!但要是把上面的条件表达式改为 NULL == p ,若写漏一个‘=’,即 NULL = p 。由于赋值表达式的左操作数必须是一个可修改的左值表达式,常量不是可修改的左值,编译时出错!

 

2、整型变量与零值比较

int value = 0;

if( 0 == value )

if( 0 !=  value )

但不要写成

if( value )

if( !value )

否则,会让人误解value是bool型变量,降低可读性

 

3、浮点变量与零值比较

由于float和double类型都有精度限制,因此浮点变量不可用==或!=与任何数字比较!常将改写成<或>或<=或>=的形式,如判断浮点变量x与2相等时,可写为 if( x-2<一个可接受的误差 )

 

4、指针变量与零值比较

虽然NULL与0数值上相等,但两者的意思不同!

切记不要将

if( NULL == p )

写成

if( 0 == p )      //容易误解p是整型变量

if( p )              //容易误解p是bool变量

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值