gpt4 book ai didi

java - 缩写代码的单词形式

转载 作者:行者123 更新时间:2023-11-29 08:11:22 26 4
gpt4 key购买 nike

我有一个我试图理解的程序,但有一个或多个我不理解的缩写代码。 代码是

    double xDistance = x1 - x2 >= 0 ? x1 - x2 : x2 - x1;
double yDistance = y1 - y2 >= 0 ? y1 - y2 : y2 - y1;

我在编程书籍中读到 ?: 是 if...then 的缩写形式,但是我应该把这些词放在哪里,因为每次我插入或替换一些代码时都会出现语法错误。

下面这行代码还有不止一种写法

(xDistance <= (w1 + w2) / 2 && yDistance <= (h1 + h2) / 2)

最好替换 && 运算符

提前感谢您提供的任何帮助。

最佳答案

条件运算符 ? :if-else 的简写,作用如下:

(condition) ? (return this if condition true) : (return this if condition false)


因此

double xDistance = x1 - x2 >= 0 ? x1 - x2 : x2 - x1;

等于:

if (x1 - x2 >= 0)
xDistance = x1 - x2;
else
xDistance = x2 - x1;


第二行:

double yDistance = y1 - y2 >= 0 ? y1 - y2 : y2 - y1;

是同一个东西,等同于:

if (y1 - y2 >= 0)
yDistance = y1 - y2;
else
yDistance = y2 - y1;


xDistanceyDistance 中存储绝对值(即距离而不是位移)。也可以替换成Math.abs(x1 - x2)


为什么要替换下面的 && 运算符?

(xDistance <= (w1 + w2) / 2 && yDistance <= (h1 + h2) / 2)

如果你真的不得不这样做(假设这个语句属于 if 语句):

if (xDistance <= (w1 + w2) / 2)
if (yDistance <= (h1 + h2) / 2)
// do something

编辑David所述在注释中,&& 只是一个逻辑 AND。 IE。对于 X && Y,当 X 为 TRUE 且 Y 为 TRUE 时,表达式为 TRUE。

因此,您可以利用短路,如果第一个条件 (X) 为 FALSE,则程序评估第二个 (Y) 因为表达式永远不可能为真。

关于java - 缩写代码的单词形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7974440/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com