gpt4 book ai didi

java - 如何合并用于在 2D 空间中的单元周围搜索的 if 语句

转载 作者:行者123 更新时间:2023-11-30 03:35:13 25 4
gpt4 key购买 nike

这是一段代码:

 if (y[X][Y] == 'B')
{
System.out.printf(" (%2d,%2d) %3d\n", X, Y, digCount);
boneFound = true;
}
else
if (y[X][Y + 1] == 'B')
{
System.out.printf(" (%2d,%2d) %3d\n", X, Y + 1, digCount);
boneFound = true;
}
else
if (y[X][Y - 1] == 'B')
{
System.out.printf(" (%2d,%2d) %3d\n", X, Y - 1, digCount);
boneFound = true;
}
else
if (y[X - 1][Y] == 'B')
{
System.out.printf(" (%2d,%2d) %3d\n", X - 1, Y, digCount);
boneFound = true;
}
else
if (y[X + 1][Y] == 'B')
{
System.out.printf(" (%2d,%2d) %3d\n", X + 1, Y, digCount);
boneFound = true;

我想搜索 double 组索引以及向上、向下、向左、向上各一个空格的每个索引正确的。然后我想打印具有字符“B”的数组索引。有没有更有效的方法来做到这一点,而不需要所有这些 if 语句?

最佳答案

利用短路||,将所有重复的代码分组到一个函数中。这将帮助您开始:

boneFound = at(X,Y) || at(X,Y+1) || at(X,Y-1) || at(X-1,Y) || at(X+1,Y);

您的 at 方法可能类似于:

private static boolean at(X, Y) {
boolean boneHere = this.y[X][Y] == 'B';
if (boneHere) {
System.out.printf(............);
}
return boneHere;
}

或者可以将其称为boneAt。你的来电。如果您不需要所有日志记录,那么您可以不使用该功能。但恕我直言,日志记录中有太多重复的代码。

关于java - 如何合并用于在 2D 空间中的单元周围搜索的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28145395/

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