java输入数字输出菱形

1、要求

用两个for循环输出一个菱形。

java输入数字输出菱形_java初学

2、代码

import java.util.Scanner;

/**
 * java输入数字输出菱形
 * @author com
 *
 */
public class Test {


	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
		f(a);
	}

	public static void f(int row) {
		//正三角形
		for(int i=0;i<row;i++) {
			int k=row-i;
			int min=0;
			while(min<k) {
				System.out.print(" ");
				min++;
			}
			int v=2*i+1;
			int mini=0;
			while(mini<v) {
				System.out.print("*");
				mini++;
			}System.out.println();
		}

		//中间最长的一行
		int mid = 2*row+1;
		int mini=0;
		while(mini<=mid) {
			System.out.print("*");
			mini++;
		}System.out.println("");

		//倒三角形
		for(int i=0;i<row;i++) {
			int k=i+1;
			int min=0;
			while(min<k) {
				System.out.print(" ");
				min++;
			}
			int v=2*(row-i)-1;
			int init=0;
			while(init<v) {
				System.out.print("*");
				init++;
			}System.out.println();
		}
	}

}

3、运行结果

java输入数字输出菱形_java_02

4、思路

输出分为三部分,一个正三角形和中间最长的一行星星再加上一个倒三角形。

思路是先找出每一行的行数和空格数、每一行的行数和星星的个数的规律就行了。

两个for循环输出,第一个for循环输出一个正三角形,第二个for循环输出一个倒三角形。

行数和星星的输出用while循环逐个输出就行了,还有记得for循环循环完一轮最后的换行。

5、总结

曾经大二的时候有一个学妹的java作业说用两个for循环输出一个菱形,那时候觉得这作业好简单。

可是看了十几分钟都么弄出来,尴尬的....。那时候没想到还可以用while循环,想了好久还是没是没有做出来。

那时候也是刚刚学java,菜的抠脚,她们大一下学期提前学了,和我一样,那时候没做出来。。。现在补上一个动态菱形吧。

菱形大小依自己输出而定。不想自己输入直接去掉int a = sc.nextInt();这句在f()方法中直接写参数就行了。