MoreEffectiveKey学习手札(三)---注意自增运算符++

    自增运算符++,就是将当前变量在数值上自增1,一般说来用自增运算符比表达式+1再赋值回来效率更高,所以很多程序员喜欢用这个运算符。
    但是在条件判断式中使用就要格外注意这个++运算符了。在C++和C#中++运算符优先级最高,所以判断式
    if(a++>b)不需要写成if((a++)>b)。一般程序员都注意到了这个但是有时候却会忘了另外一个++的重要特性,大家看看下面的代码:
void  test1()
{
                GlobalPage
++;
                
if (GlobalPage > GlobalPageMax-2)
                    GlobalPage 
= 0;
}


void  test2()
{
                
if (GlobalPage++ > GlobalPageMax-2)
                    GlobalPage 
= 0;
}
    如果你觉得这两个其实是一样的,那么你就错了,不信弄两个值进去试试。其实一开始我也不知道错在哪里,后来将test2拆分成test1成功后突然想到的。其实将test1自增语句和判断语句合并后应该是if(++GlobalPage > GlobalPageMax-2),现在明白了吧。
    if(++i>1)指的是先将i自增,然后去和1做比较。而if(i++>1)指的是先把i和1做比较,不管bool判别式结果是真是假,判断完成后再将i自增1。
    这个道理大家在学习C/C++/C#/JAVA相信老师都讲过的,只是学习时用到的地方比较少,时间长了会忘记。等到自己写应用程序的时候就会出错。我这里这段代码其实就是判断下一步要切换的TabPage有没有超出我分配使用的TabPage总额。
    文章不是什么技术文章,只是提醒下大家一些编程的小细节,避免到最后出问题调试起来麻烦。
   

你可能感兴趣的:(effective)