为了账号安全,请及时绑定邮箱和手机立即绑定

使用 uint64 的 for 循环不会停止

使用 uint64 的 for 循环不会停止

Go
智慧大石 2023-05-22 16:57:11
有没有解释为什么使用 uint64 的循环不会在 0 处停止?我用 int 尝试了相同的 for 循环,它按预期工作。package mainimport (    "fmt")func main() {  i := uint64(5)  for ; i>=uint64(0); i-- {  fmt.Printf("step %d\n", i)  }}我希望这个函数在输出时停止step 0,但它会溢出 int 并永远继续下去step 18446744073709551615等等
查看完整描述

1 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

您的循环继续 while i >= 0,但无符号整数始终大于或等于零。无符号整数不能为负数,因此您的循环永远不会终止。

尝试更改iint64并查看其行为是否有所不同。:-)

祝你好运。


查看完整回答
反对 回复 2023-05-22
  • 1 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信