Java编写随机数字猜测器时为何要为int类型变量赋值-1?
猜数字程序预初始化
guess = -1的作用 这是入门循环逻辑里非常典型的「哨兵值初始化」操作,核心作用是保证后续的猜数循环可以正常触发,具体逻辑如下:
- 这类猜数字程序的循环判断条件通常是
while (guess != 生成的随机目标数),逻辑是只要用户没猜对就一直循环要求重新输入 - 如果不给
guess预先赋值,大部分编译型语言会因为变量未初始化直接抛出编译错误,程序根本无法运行 - 选择赋值为-1的原因是,这类入门猜数字程序的随机数范围一般是1~100的正整数,-1永远不可能和生成的目标随机数重合,能保证第一次循环一定会执行,用户可以正常输入第一个猜测值
- 这个初始值不是必须为-1,只要是不在随机数生成范围内的数值都可以,比如0、101都能实现一样的效果,赋值-1只是行业内比较通用的哨兵值写法而已
内容的提问来源于stack exchange,提问作者anthonycrowder
相关产品推荐
相关产品推荐

