C#随机数与猜测值差值±3判定的代码写法及优化咨询
现有代码问题说明
你当前的写法存在多处语法错误和逻辑错误,无法实现预期功能:
- C#条件判断关键字为小写
if,大写If不符合语法规范 - 单竖线
|是按位或运算符,该场景下你需要使用逻辑运算符,且现有条件逻辑完全错误,randomnumber < guess+3 || randomnumber> guess-3属于永真条件,无论两个数值差值多少都会判定为成立 if判断括号末尾多写了分号;,会导致判断逻辑和后续输出语句完全脱钩,无论条件是否成立,输出语句都会执行- 控制台输出方法拼写错误,正确写法是
Console.WriteLine(),你写的Console.Writeln大小写不符合要求
正确实现方式
最高效且可读性最好的写法是使用.NET内置的绝对值方法,运算效率已经经过运行时优化,和手动写两次判断的开销几乎一致:
if (Math.Abs(randomnumber - guess) <= 3) { Console.WriteLine("Almost right"); }
如果你不想使用Math.Abs方法,也可以手动写判断逻辑,注意需要用逻辑与&&而非逻辑或||:
if (randomnumber >= guess - 3 && randomnumber <= guess + 3) { Console.WriteLine("Almost right"); }
额外说明
你当前的场景本身就不需要用到数组,上述两种写法已经是最优实现,不需要额外调整代码结构。
内容的提问来源于stack exchange,提问作者Kiko Kiko
相关产品推荐
相关产品推荐

