在`for`循环中运行整个`unsigned char`范围

Bla*_*der 2 c++ for-loop

我想unsigned charfor循环中遍历整个范围.假设我要打印0到255之间的所有数字,我该如何完成?

以下代码将是一个无限循环:

for (unsigned char i=0; i<=255; i++)
    cout << i << endl;
Run Code Online (Sandbox Code Playgroud)

这一个错过了0或255,这取决于它是否是i++++i

for (unsigned char i=0; ++i<=255; i++)
    cout << i << endl;
Run Code Online (Sandbox Code Playgroud)

我可以在for循环之前/之后放置一个cout 以补偿丢失的条目,但我寻求更优雅的解决方案.

任何帮助将不胜感激!(whiledo-while循环也欢迎!)

woo*_*tar 10

尝试,

unsigned char i = 0 ;
do {
  cout << i << endl ;
}
while ( ++i ) ;
Run Code Online (Sandbox Code Playgroud)

受益do .. while于其他形式的就是你得到一个免费的运行情况进行测试之前.在程序员的工具箱中,这是一个重要的工具(如果不经常使用).

  • 因为当`i`是'255`然后'++ i`将溢出回0,不是吗? (3认同)