// 打印小于 20 的数字
public class Test {
public static void main(String[] args){
int x = 10;
do {
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
} while(x < 20);
}
}
i++
与++i
操作的区别,在某些特殊场合中,也许会更为高效。do {...} while (0)
用法。这在很多开源项目的源码中都能找到踪迹,例如 Linux、Redis 以及 CPython 解释器,等等。do {...} while (0)
却偏偏只需要它执行一遍,这初看起来是有点多余啊。do {...} while (0)
结合 break 使用,还可以实现很优雅的跳转控制效果。do {
// 执行步骤 1
if (条件1失败) {
break;
}
// 执行步骤 2
if (条件2失败) {
break;
}
// 执行步骤 3
if (条件3失败) {
break;
}
} while(0);
// 执行步骤 4
// 执行步骤 5
do:
pass
while False
do:
<setup code>
while <condition>:
<loop body>
while_stmt : ["do" ":" suite]
"while" expression ":" suite
["else" ":" suite]
do {...} while (0)
的跳转控制效果。while True:
<setup code>
if not <condition>:
break
<loop body>
Please reject the PEP. More variations along these lines won’t make the language more elegant or easier to learn. They’d just save a few hasty folks some typing while making others who have to read/maintain their code wonder what it means.
do {...} while (0)
的典型用法,但是,do-while 能够解决的几个问题要么在 Python 中并不存在(宏定义、汇编指令),要么就是已经有更为合适而低成本的实现(跳转控制)。