Loops 打印带有嵌套for循环的菱形

Loops 打印带有嵌套for循环的菱形,loops,for-loop,nested,Loops,For Loop,Nested,对于我的java类,其中一个练习是使用嵌套For循环打印菱形。在本练习中,您需要使用最小数量的输出,同时使用嵌套for循环。另一个规定是,每个输出只能输出1个字符,例如单个空格、单个星号或单个结束行语句 我已经完成了,但我想知道是否有更简单的方法来完成,或者是否有人有清理我代码的技巧。似乎最终的写作方式超出了需要。非常感谢您的帮助和提示。:) 以下是最终结果需要的样子: 这是我的密码: public class Diamond { public static void main(St

对于我的java类,其中一个练习是使用嵌套For循环打印菱形。在本练习中,您需要使用最小数量的输出,同时使用嵌套for循环。另一个规定是,每个输出只能输出1个字符,例如单个空格、单个星号或单个结束行语句

我已经完成了,但我想知道是否有更简单的方法来完成,或者是否有人有清理我代码的技巧。似乎最终的写作方式超出了需要。非常感谢您的帮助和提示。:)

以下是最终结果需要的样子:

这是我的密码:

public class Diamond 
{
    public static void main(String args[])
    {
        int b = 11; // secondary asterisk loop counter
        int ac = 2; // asterisk count
        int sc = 5; // space count
        int elc = 2; // end line count
        int slc = 1; // space loop count
        int sslc = 1; // secondary space loop count


        for(int e = 1; e < elc && elc < 12;e++)
        {   
            if(elc <= 6)
            {
                for(int a = 1; a < ac; a++)
                {
                        for(;sc <= 5 && sc > 0; sc--)
                        {
                            System.out.print(" ");
                        }

                        System.out.print("*");
                }

                ac += 2;
                sc = 5 - slc;
                slc += 1;
            }

            else if (elc > 6)
            {
                ac -= 2;
                sc = 1;


                for (; b < ac ; b++)
                {

                    for(;sc <= sslc && sc > -2; sc++) 
                    {
                        System.out.print(" ");
                    }

                    System.out.print("*");
                }

                b = 1;
                sslc += 1;

            }
            if(elc != 6)
            {
                System.out.println();
            }

            elc += 1;
        }
    }
}
公共类菱形
{
公共静态void main(字符串参数[])
{
int b=11;//辅助星号循环计数器
int ac=2;//星号计数
int sc=5;//空间计数
int elc=2;//结束行计数
int slc=1;//空间循环计数
int sslc=1;//辅助空间循环计数
对于(int e=1;e
您可以尝试将菱形的4条边记为方程式(例如x+y=4;x-y=2)。然后在网格中的每个单元格中做一个嵌套循环,看看是否应该打印空格或星形。这个测试看起来像

如果f1(x,y)或f2(x,y)或f3(x,y)或f4(x,y):打印“*”,否则打印“

其中f1、f2、f3、f4是4条对角线的方程式


如果需要最小化要打印的字符数,请使用数组进行准备,然后忽略尾随空格;或者使用一些特别的规则(像每行只有两颗星,除了第一个和最后一个…)

你可以试着把钻石的四条边写下来作为等式(例如x+y=4;x-y=2)。然后在网格中的每个单元格中做一个嵌套循环,看看是否应该打印空格或星形。这个测试看起来像

如果f1(x,y)或f2(x,y)或f3(x,y)或f4(x,y):打印“*”,否则打印“

其中f1、f2、f3、f4是4条对角线的方程式

如果需要最小化要打印的字符数,请使用数组进行准备,然后忽略尾随空格;或者使用一些特别的规则(比如每行只有两颗星,除了第一个和最后一个…)

公共类ASultan
{
公共静态void main(字符串[]args){
int size=9;
对于(int i=1;i=i;k-=2){
系统输出打印(“”);
}
对于(int j=1;j
公共类ASultan
{
公共静态void main(字符串[]args){
int size=9;
对于(int i=1;i=i;k-=2){
系统输出打印(“”);
}
对于(int j=1;j
public class ASultan
{
   public static void main(String[] args) {

    int size = 9;

    for (int i = 1; i < size; i += 2) {
        for (int k = size; k >= i; k -= 2) {
            System.out.print(" ");
        }
        for (int j = 1; j <= i; j++) {
            System.out.print("*");
        }
        System.out.println();
    }

    for (int i = 1; i <= size; i += 2) {
        for (int k = 1; k <= i; k += 2) {
            System.out.print(" ");
        }
        for (int j = size; j >= i; j--) {
            System.out.print("*");
        }
        System.out.println();
    }

  }
}