第一题:i=0,k=-1是初始化i和k的值,k=1是判断循环结束的条件。
因为k=1表示将1赋值给k,其结果是返回true,所以不管后面i和k怎么变化,每次都会返回true,故循环无穷多次。
第二题:第一次执行循环时,i=0,j=1。i<=j+1成立(因为0<=2成立),所以循环结束后,由i+=2可知,i变成了2,由j--可知j变成了0。
执行第二次循环时,i<=j+1不成立(因为2<=1不成立),所以循环结束,故只执行了一次。
第一题循环无数次是因为k=1,也就是永真,即表达式2永远成立,如果将k=1改为k==1,则该for循环将循环0次。
第二题很简单,第一次循环i=0,0<2,所以循环一次,接着i变为2,j变为0,因为2不小于1,所以结束for循环,故只循环一次。
有不理解可再问。。就是没有悬赏分有点不厚道。。。呵呵
第一个如果可以这么理解的话:循环条件为真循环即进行......不知道是不是
第二个... 不能理解
第一题:i=0,k=-1是初始化i和k的值,k=1是判断循环结束的条件。
因为k=1表示将1赋值给k,其结果是返回true,所以不管后面i和k怎么变化,每次都会返回true,故循环无穷多次。
第二题:第一次执行循环时,i=0,j=1。i<=j+1成立(因为0<=2成立),所以循环结束后,由i+=2可知,i变成了2,由j--可知j变成了0。
执行第二次循环时,i<=j+1不成立(因为2<=1不成立),所以循环结束,故只执行了一次。