我是java新手并参加了一个介绍课程。
我已经能够弄清楚我的大部分问题,但是我被困在最后一步。
最终结果应该是使用四个或更少的system.out.print或system.out.println语句:
*******
* *****
* ****
* ***
* **
* *
*******
我创建了这个
*******
* *****
* ****
* ***
* **
* *
*
这是我的代码。你们有什么可以看到的东西可以提供帮助吗?
public class StarPatterns {
public static void main(String[] args) {
int col;
int row;
for (row = 6; row >= 0 ; row--) {
if (row >= 0)
System.out.print("*");
for (col = row; col < 6; col++) {
System.out.print(" ");
}
for (col = row; col > 0; col--) {
System.out.print("*");
}
System.out.println();
}
}
}
答案 0 :(得分:2)
public class stars {
public static void main(String[] args) {
int row = 7;
int col = 7;
int count;
for (int i=0;i<row;i++)
{
count = i;
System.out.print("*");
for (int c=1;c<col;c++)
{
if (count == 0 || count == row-1)
{
System.out.print("*");
}
else
{
System.out.print(" ");
count--;
}
}
System.out.println("");
}
}
4 System.out打印:
更新:
3 System.out打印:
public static void main(String[] args) {
int row = 7;
int col = 7;
int count;
for (int i=0;i<row;i++)
{
count = i;
//System.out.print("*");
for (int c=0;c<col;c++)
{
if (count == 0 || count == row-1 || c == 0)
{
System.out.print("*");
}
else
{
System.out.print(" ");
count--;
}
}
System.out.println("");
}
}
可能不是最佳(内存使用)但可能对逻辑有用:
使用2个System.out打印:
public static void main(String[] args) {
int row = 7;
int col = 7;
int count;
String strNewLine = "*" + System.lineSeparator();
String str = "*";
String strToPrint;
for (int i=0;i<row;i++)
{
count = i;
for (int c=0;c<col;c++)
{
if (count == 0 || count == row-1 || c == 0)
{
if (c == row-1)
{
strToPrint = strNewLine;
}
else
{
strToPrint = str;
}
System.out.print(strToPrint);
}
else
{
System.out.print(" ");
count--;
}
}
}
}
答案 1 :(得分:1)
你怎么看待这个:
public static void main(String[] args) {
for (int row=0; row<7; row++) {
for (int col=0; col<7; col++) {
System.out.print((col == 0) || (row == 6) || (col > row) ? "*" : " ");
}
System.out.println();
}
}
结果是:
*******
* *****
* ****
* ***
* **
* *
*******
答案 2 :(得分:0)
你可以在没有三元运算符的情况下完成它,因为我认为你还没有学过它(或者至少你的导师不喜欢你使用它们):
public class StarPatterns {
public static void main(String[] args) {
int col;
int row;
for (row = 0; row < 7; row++) {
for (col = 0; col < 7; col++) {
String symbol = " ";
if (row == 0 || col == 0 || col > row || row == 6) {
symbol = "*";
}
if (col == 6) {
symbol += System.getProperty("line.separator");
}
System.out.print(symbol);
}
}
}
}
输出:
*******
* *****
* ****
* ***
* **
* *
*******