java循环的for基础问题

java循环的for基础问题

问题描述:

初学者,学到循环。
就是有什么比这个简单的方法,输出菱形,感觉我这个很麻烦。

图片说明

 /* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        // your code goes here
        for (int a=1; a<=5; a++) {
            for (int b=a;b<5+a;b++) System.out.print(b >= 5 ? "* " : " ");
            System.out.println();
        }
        for (int a=1; a<=4; a++) {
            for (int b=0;b<a;b++) System.out.print(" ");
            for (int b=a;b<5;b++) System.out.print("* ");
            System.out.println();
        }
    }
}

这种方式就简单,如果用其他的方法也能出来,但就麻烦了

有意思;

    public static void main(String[] args) {
        int size = 7;
        int limit = (size - 1) / 2;

        for (int i = 0; i < size; i++)
        {
            String _temp = (newString(" ", Math.abs(limit)) + newString("*", size - Math.abs(limit) * 2));
            System.out.println(_temp);
            limit--;
        }
    }

    public static String newString(String init, int length){
        String tmp = "";
        for (int i = 0; i < length; i++)
        {
            tmp += init;
        }
        return tmp;
    }

一共压缩到4行代码

在线测试
http://ideone.com/BkKMT1

http://localhost:8080/DownWeb/FileManager?filename=girl.jpg

    从复杂度上讲,我这个也是最简单了,个人感觉而且更好理解!

            int length = 16;
        for (int a = 1; a <= length; a++)
        {
            int m = Math.Abs(length / 2 + 1 - a);//m为菱形左侧的空格数
            for (int b = 1; b <= length - m; b++)
            {
                //是否在菱形区域菱形区域
                if (b > m && b < length + 1 - m)
                {
                    //根据菱形边缘部分一定输出"*"的特点,判断区域其他部分输出"*"或" "
                    System.out.print(b % 2 == (m + 1) % 2 ? "*" : " ");
                }
                else
                {
                    //菱形左侧侧输出" "
                    System.out.print(" ");
                }
            }
            System.out.println();
        }

for (int a=1; a<=5; a++) {
for (int b=a;b= 5 ? "* " : " ");
System.out.println();
}
for (int a=1; a<=4; a++) {
for (int b=0;b<a;b++) System.out.print(" ");
for (int b=a;b<5;b++) System.out.print("* ");
System.out.println();
}

            for 内置方法