gpt4 book ai didi

java - 是否可以将我的代码压缩成少于 3 行?

转载 作者:行者123 更新时间:2023-12-02 03:14:11 24 4
gpt4 key购买 nike

public class MagicSquare
{
public static int[][] grid = new int[3][3];
public static int i = 0;
public static int j = 0;

public static void main(String[] args) {

int x = 1;
int y = 2;
int z = 0;

while(z < 9)
{
int holdx = x;
int holdy = y;
z++;
x++;
y--;

if(x == 3)
{
x = 0;
}

if(y == -1)
{
y = 2;
}

if(y == 3)
{
y = 0;
}

if(grid[x][y] == 0)
{
grid[x][y] = z;
}

else
{
holdy++;

if(holdy == 3)
{
holdy = 0;
}

grid[holdx][holdy] = z;
x = holdx;
y = holdy;
}
}

for(int i = 0; i < 3; i++)
{
System.out.print(grid[i][0]+", ");
}

System.out.println(" ");

for(int i = 0; i < 3; i++)
{
System.out.print(grid[i][1]+", ");
}

System.out.println(" ");

for(int i = 0; i < 3; i++)
{
System.out.print(grid[i][2]+", ");
}
}

输出如下所示:

2、4、9、
6、8、1、
7、3、5、

你好,我编写了一个黑魔法代码,它能够填充正方形上方和右侧的网格,但如果它填充了一个数字,那么下一个数字将被放入当前位置下方的正方形中。

然后,向右上方移动一个方 block ,并将下一个整数放在那里,如果我也离开网格,那么下一个数字将环绕到底部和/或左侧。该程序运行直到所有方 block 都被填满。

我想知道是否可以将从 while 循环开始到 for 循环结束的代码压缩为更短的代码?

有人说我只需 2 行就可以编写此代码,我认为这很奇怪......但他们说这是可行的!

任何提示、帮助或指示将不胜感激!

非常感谢!

最佳答案

不确定是否少于 3 行(至少在不牺牲可读性的情况下),但您肯定可以压缩这些 if 语句。

if(x == 3) {
x = 0;
}

if(y == -1) {
y = 2;
}

if(y == 3) {
y = 0;
}

深入简单

x = x % 3;
y = (y + 3) % 3;

您可以将它们放入之前的 x++y--

x = (x + 1) % 3;
y = ((y - 1) + 3) % 3;

holdy 类似(如果您确实需要该值,我不知道)。

然后,如果您只想打印数组,则可以缩短 for 循环。

for(int[] row : grid) {
System.out.println(Arrays.toString(row));
}

关于java - 是否可以将我的代码压缩成少于 3 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40556989/

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