加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从0x0000循环到0xFFFF

发布时间:2020-12-15 18:36:14 所属栏目:百科 来源:网络整理
导读:我想要一个使用UInt16(ushort)循环遍历其所有值的循环.但是,这不会这样做: for( ushort i = 0; i UInt16.MaxValue; i++ ){ // do something} 问题是,当i == 0xFFFF而不是“做某事”时,循环将退出. 如果我将’for’语句更改为“for(ushort i = 0; i = UInt16
我想要一个使用UInt16(ushort)循环遍历其所有值的循环.但是,这不会这样做:
for( ushort i = 0; i < UInt16.MaxValue; i++ )
{
    // do something
}

问题是,当i == 0xFFFF而不是“做某事”时,循环将退出.
如果我将’for’语句更改为“for(ushort i = 0; i< = UInt16.MaxValue; i)”,那么它将变为无限循环,因为我永远不会达到0x10000因为ushorts只转到0xFFFF. 我可以使’i’成为一个int并将其转换为或者将其分配给循环中的ushort变量. 有什么建议?

解决方法

使用do … while循环
ushort i = 0;
do
{
    // do something
} while(i++ < UInt16.MaxValue);

关于顶部与底部here的测试循环有一个有趣的讨论.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读