南京古都:C++中的if 语句

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 14:04:58
if(j=i-1) 和 if(j==i-1) 有什么区别

=是赋值号,不是等号。
if(j=i-1)是令j=i-1,再判断j是否不为0。不为0,则if成立。
if(j==i-1)则是判断j是否和i-1相等,相等则if成立。

第一个是赋值语句,不行
第二个才是逻辑判断的

if(j=i-1)
表示 如果把i-1的这个值给j,

if(j==i-1)
表示 如果j等于i-1的话,

一个等号是赋值,把某个值给给变量,

两个等号是等于,就是数学中等于的意思

if(j=i-1) 有的编译器会有warning
j=i-1 肯定是true的,所以这句话会先执行 j=i-1 , 然后执行if里面的东西
if(j==i-1) 先判断j是否等于i-1 , 然后再判断是否执行if里面的东西

if(j=i-1)是先赋值后判断
if(j==i-1)是直接判断

if(j=i-1)首先执行赋值操作,将i-1赋值给j,然后判断j是否为0
if(j==i-1)则判断j是否和i-1相等
=和==分别表示赋值和相等,不能混淆