初学时刷题遇到的问题下面是一些个人分析(有误还希望大佬指出)
遇到这个问题是因为 误以为 while(n--) 和 for (int i = 0; i < n; i++) 都是执行n次
while () 是当括号里面为真时 进行循环体里面的程序 我们都知道计算机当中 非0为真 0 为假
当n--为0时while会跳出循环执行循环体的下一条语句
如果你的下一条语句会再次返回到这个while循环语句 此时n-- 为负数 负数非0为真 就会陷入死循环从而运行超时
for ( 1; 2; 3)
而for语句它的执行顺序是先执行 1,再看 1 是否满足 2 的判断,如果满足则进入循环,反之则不进入循环,如果进入循环里则执行循环体里面的内容,最后再执行 3 。
循环n次后执行下一条语句