我正在完成一个用 Java 编写小程序的初学者练习。我的任务是打印出(即找到算法)以下输出
XOOOOOOOOO
XXOOOOOOOO
XXXOOOOOOO
XXXXOOOOOO
XXXXXOOOOO
XXXXXXOOOO
XXXXXXXOOO
XXXXXXXXOO
XXXXXXXXXO
XXXXXXXXXX
我已经想出了如何去做,但我写的代码似乎重复且乏味。我怎样才能缩短我的代码?一定有更简单的方法来实现这一目标吗?
这是我目前的代码;
package helloWorld;
public class HelloWorld {
public static void main(String[] args)
{
// Output
// Algorithm 1
boolean ft = true;
String s = new String();
for(int i = 0; i < 10; i++)
{
s += "X";
for(int j = 0; j < 9; j++)
{
if(i == 0)
{
s += "O";
}
if(i == 1)
{
if(ft == true)
{
s+="X";
ft = false;
}
if(j == 8)
{
continue;
}
s += "O";
}
if(i == 2)
{
if(ft == true)
{
s+= "XX";
ft = false;
}
if(j == 7)
{
break;
}
s += "O";
}
if(i == 3)
{
if(ft == true)
{
s+= "XXX";
ft = false;
}
if(j == 6)
{
break;
}
s += "O";
}
if( i == 4)
{
if(ft == true)
{
s+= "XXXX";
ft = false;
}
if(j == 5)
{
break;
}
s += "O";
}
if( i == 5)
{
if(ft == true)
{
s+= "XXXXX";
ft = false;
}
if(j == 4)
{
break;
}
s += "O";
}
if( i == 6)
{
if(ft == true)
{
s+= "XXXXXX";
ft = false;
}
if(j == 3)
{
break;
}
s += "O";
}
if( i == 7)
{
if(ft == true)
{
s+= "XXXXXXX";
ft = false;
}
if(j == 2)
{
break;
}
s += "O";
}
if( i == 8)
{
if(ft == true)
{
s+= "XXXXXXXX";
ft = false;
}
if(j == 1)
{
break;
}
s += "O";
}
if( i == 9)
{
if(ft == true)
{
s+= "XXXXXXXXX";
ft = false;
}
if(j == 0)
{
break;
}
s += "O";
}
}
System.out.println(s);
s = "";
ft = true;
}
}
}
最佳答案
只需使用 2 个嵌套循环:
String s;
for( int i = 0; i < 10; i++)
{
s = "";
for( int j = 0; j <= i; j++)
s+= "X";
for( int j = i+1; j < 10; j++)
s+= "O";
System.out.println(s);
}
关于java - 如何在java中非繁琐地打印出10行10个字符(或字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39285014/