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)
但这并没有真正有益于可读性.或许其他方式?
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)