for循环的一些注意事项 系统管理员 2024-03-23 10:33 32阅读 0赞 首先需要明确for循环的各个参数 for(表达式1;表达式2;表达式3) { 循环语句; } 表达式1 是初始化部分,用于初始化循环变量,表达式2是条件判断部分,用于判断循环终止的条件,表达式3是调整部分,用于循环变量的变化。 下面看这个代码 int main() { int i = 0; int j = 0; int tmp = 1; for (i = 0; i < 10; i++) { for (j = 0; j < 10; j++) { printf("%d\n", tmp); tmp++; } } } 这个程序显而易见是打印出1-100共一百个数 那么下面这个函数呢 int main() { int i = 0; int j = 0; int tmp = 1; for (; i < 10; i++) { for (; j < 10; j++) { printf("%d\n", tmp); tmp++; } } } 这个结果是 ![在这里插入图片描述][ec38a344069c4f5ca4be99b39b1b3c71.png]那么这是为什么呢 首先i=0进入第一个for循环,j=0,进入第二个for循环,循环十次,此时j变成10,此后因为j没有办法初始化,所以就不会进入第二个for循环。 此外for循环也是支持两个循环变量的 int main() { int i = 0; int j = 0; for (i = 0, j = 0; i < 2 || j < 5; i++, ++j) { printf("hh\n"); } } 再看一题,问本题循环几次 int main() { int i = 0; int k = 0; for (i = 0, k = 0; k = 0; i++, k++) { k++; } return 0; } 答案是0次,一定要注意,判断条件里面是赋值语句并不是判断语句,所以k=0,赋值语句的返回值取决于赋的值,如果赋值为0,那么赋值语句返回值就是0,如果赋的值就是-1,那么赋值语句的返回值就是-1。所以本题k=0,为假根本就不会进入循环。同时注意,若赋值-1,此时判断为真,是可以进行循环的,除0以外都是真值\` [ec38a344069c4f5ca4be99b39b1b3c71.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/23/f7dd8093135144c5b83ddb9fbc65ad1d.png
还没有评论,来说两句吧...