C++语言,循环判断条件,用!=,仍是用<呢

C++语言,循环判断条件,用!=,还是用<呢?
《C++Primer》第四版
3.3.2  vector对象的操作
关键概念:安全的泛型编程

问题:
1.C++语言,循环判断条件,用!=,还是用<呢?
------解决方案--------------------
for(int i=0;i<100;i++)要比for(int i=0;i!=100;i++)好
因为你在循环过程中可能会有把i赋值成>100的情况,如果这种情况出现了就会变成无限循环了。
另外还有一种情况就是多线程,另一个线程控制判断条件这个变量,能变成什么都不好说,所以<比!=好
------解决方案--------------------
引用:
for(int i=0;i<100;i++)要比for(int i=0;i!=100;i++)好
因为你在循环过程中可能会有把i赋值成>100的情况,如果这种情况出现了就会变成无限循环了。
另外还有一种情况就是多线程,另一个线程控制判断条件这个变量,能变成什么都不好说,所以<比!=好

不是这么说的吧.
如果在for中可能改变i的值,或者另一个线程中也可能改变i的值.
那么无论是<还是!=,都是需要特别留意的,如果出现了死循环,本身就是程序BUG,代码的问题,不应该说哪个好哪个不好,只能说在有些场合,哪个更合适些.
------解决方案--------------------
引用:
Quote: 引用:

for(int i=0;i<100;i++)要比for(int i=0;i!=100;i++)好
因为你在循环过程中可能会有把i赋值成>100的情况,如果这种情况出现了就会变成无限循环了。
另外还有一种情况就是多线程,另一个线程控制判断条件这个变量,能变成什么都不好说,所以<比!=好

不是这么说的吧.
如果在for中可能改变i的值,或者另一个线程中也可能改变i的值.
那么无论是<还是!=,都是需要特别留意的,如果出现了死循环,本身就是程序BUG,代码的问题,不应该说哪个好哪个不好,只能说在有些场合,哪个更合适些.

好与不好只能说是多数情况,如果所有的情况都考虑到那就是都好或者都不好了,那讨论就没意义了。多线程因为!=引发死循环的问题是常见的,大多数情况!=本身就是种不严谨的写法。如果因为能将!=改成<就能完全解决问题而不影响整体的功能,就没必要再在程序中添加其它影响性能的判别条件了。
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

for(int i=0;i<100;i++)要比for(int i=0;i!=100;i++)好
因为你在循环过程中可能会有把i赋值成>100的情况,如果这种情况出现了就会变成无限循环了。
另外还有一种情况就是多线程,另一个线程控制判断条件这个变量,能变成什么都不好说,所以<比!=好

不是这么说的吧.
如果在for中可能改变i的值,或者另一个线程中也可能改变i的值.
那么无论是<还是!=,都是需要特别留意的,如果出现了死循环,本身就是程序BUG,代码的问题,不应该说哪个好哪个不好,只能说在有些场合,哪个更合适些.

好与不好只能说是多数情况,如果所有的情况都考虑到那就是都好或者都不好了,那讨论就没意义了。多线程因为!=引发死循环的问题是常见的,大多数情况!=本身就是种不严谨的写法。如果因为能将!=改成<就能完全解决问题而不影响整体的功能,就没必要再在程序中添加其它影响性能的判别条件了。

写成<还不照样是不严谨的写法。
该同步就同步,没什么好说的。