小于时增加,低于时减小

Bar*_*lom 0 language-agnostic programming-languages

出于好奇,是否有一种(语言无关的)方法将这两个通用语句组合成一个语句?

if (a < b) a += x;
else if (a > b) a -= x;
Run Code Online (Sandbox Code Playgroud)

也可以用作

if (abs(b - a) < x) a = b;
else if (a < b) a += x;
else if (a > b) a -= x;
Run Code Online (Sandbox Code Playgroud)

哦,既然我正在写这个我正在考虑这样的事情:

if (a != b) a += x * (a < b ? 1 : -1);
Run Code Online (Sandbox Code Playgroud)

但这并没有真正有益于可读性.或许其他方式?

  • =普通语言,不是Brainfuck和喜欢或非常古老的语言

Jos*_*Lee 6

a += x * sgn(b-a)
Run Code Online (Sandbox Code Playgroud)

sgn符号功能在哪里:

sgn x | x > 0      = 1
      | x < 0      = -1
      | otherwise  = 0
Run Code Online (Sandbox Code Playgroud)