写代码时,有人问:for 循环里什么都不写,行不行?比如这样:
for (int i = 0; i < 5; i++) {
// 这里空着
}
答案是:可以,语法上完全合法。这种“空循环体”在 C、C++、Java、JavaScript 等主流语言里都允许。
空循环体干啥用?
别以为它没用。比如你想让程序等够 100 万次空转再继续执行(虽然不推荐,但老式单片机或嵌入式调试中真这么干),就可以写:
for (int i = 0; i < 1000000; i++) { }
// 或更紧凑的写法
for (int i = 0; i < 1000000; i++);
注意最后那个分号——它就是空语句,等效于一个啥也不做的循环体。
Python 有点不一样
Python 不允许裸露的空循环体。下面这段会报错:
for i in range(5):
# 这里不能空着
必须填点东西,哪怕只是占位符 pass:
for i in range(5):
pass
pass 就是 Python 的“我在这儿,但我啥也不干”,不是注释,是真实语句。
小心陷阱
空循环体容易误写成死循环。比如本想写:
while (flag == true) {
doSomething();
flag = false;
}
结果手一抖多打了个分号:
while (flag == true); { // 错!分号让循环体变空了
doSomething();
flag = false;
}
这时候 doSomething() 根本不会被循环执行,而 while 本身卡在条件判断上原地打转(如果 flag 永远为 true)。
实际开发中建议
除非有明确目的(如精确延时、等待硬件就绪),否则别刻意写空循环。现代程序更倾向用 sleep()、事件监听或异步回调来“等待”,既省资源又不容易出错。