gpt4 book ai didi

Java循环星型模式-算法优化

转载 作者:行者123 更新时间:2023-11-30 07:41:29 24 4
gpt4 key购买 nike

谁能告诉我输出这个模式的更优雅的解决方案是什么?我对 makeTemplate 方法最感兴趣,但任何其他帮助将不胜感激。这是我的代码,我希望它更具可读性:

public class Main {

public static void makeTemplate(char tab[][], int rows, int col) {
boolean increase = true;
int j = 0;
char star = '*';
for (int i = 0; i < rows; i++) {
if (increase) {
tab[i][j] = star;
if (j >= col - 1) {
increase = false;
j--;
continue;
}
j++;
} else {
tab[i][j] = star;
if (j < 0 + 1) {
increase = true;
j++;
continue;
}
j--;
}
}

}

public static void main(String[] args) {
char[][] tab = new char[30][6];
makeTemplate(tab, 30, 6);
for (int i = 0; i < 30; i++) {
for (int j = 0; j < 6; j++) {
System.out.print(tab[i][j]);
}
System.out.println();
}
}
}

最佳答案

仅对 makeTemplate 进行了一些更改

public static void makeTemplate(char tab[][], int rows, int col) {
boolean increase = true;
int j = 0;
char star = '*';
for (int i = 0; i < rows; i++) {
tab[i][j] = star;
if (increase) {
if (j >= col - 1) {
increase = false;
j--;
} else {
j++;
}
} else {
if (j < 1) {
increase = true;
j++;
}else {
j--;
}
}
}

}

替换了continue带有 else 的语句因为 continue 语句几乎与 else 执行相同的操作。在 if 语句中使用 continue 表示跳过 j++j--以下。所以改为 j++j--仅当 if 时才会执行是真的。

我也改了if(j < 0 + 1)if(j < 1)0+1 =1

已移动tab[i][j] = star;在第一个if之前因为它是 if 中的第一行和else - 谢谢贝蒂斯塔

关于Java循环星型模式-算法优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34634049/

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