我编程扫雷 - 我已经完成了,但现在我的任务已经改变了。我无法使用If-Else
或Switch
。您对如何重写此代码片段有一些建议吗?
for (int i = 1; i <= M; i++) {
for (int j = 1; j <= N; j++)
if (bombs[i][j])
System.out.print("* ");
else
System.out.print(". ");
System.out.println();
}
}
答案 0 :(得分:1)
您可以使用三元运算符:
extern "C"
{
__declspec(dllexport) void __cdecl ReverseString3(char * buff, const char *text, int buffLen)
{
buff = "yellow";
}
}
你也可以在那里投入一个String result = (bombs[i][j]) ? "* " : ". ";
System.out.println(result);
循环:
while
答案 1 :(得分:0)
您可以尝试使用三元运算符代替if
:
for (int i = 1; i <= M; i++) {
for (int j = 1; j <= N; j++) {
System.out.println(bombs[i][j] ? "* " : ". ");
}
}
答案 2 :(得分:0)
可以将炸弹[i] [j](一个布尔值)转换为索引0或1以选择.
或*
。
boolean bomb[][] = new boolean[M][N];
final String emptyBomb = ".*";
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++)
int index = Boolean.compare(bombs[i][j], false); // 0 or 1
System.out.print(emptyBomb.charAt(index));
System.out.print(" ");
}
System.out.println();
}
如你所见,boolean-to-int有点像黑客 - 在java中没有强制转换。