java输入数字输出菱形
1、要求
用两个for循环输出一个菱形。
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、运行结果
4、思路
输出分为三部分,一个正三角形和中间最长的一行星星再加上一个倒三角形。
思路是先找出每一行的行数和空格数、每一行的行数和星星的个数的规律就行了。
两个for循环输出,第一个for循环输出一个正三角形,第二个for循环输出一个倒三角形。
行数和星星的输出用while循环逐个输出就行了,还有记得for循环循环完一轮最后的换行。
5、总结
曾经大二的时候有一个学妹的java作业说用两个for循环输出一个菱形,那时候觉得这作业好简单。
可是看了十几分钟都么弄出来,尴尬的....。那时候没想到还可以用while循环,想了好久还是没是没有做出来。
那时候也是刚刚学java,菜的抠脚,她们大一下学期提前学了,和我一样,那时候没做出来。。。现在补上一个动态菱形吧。
菱形大小依自己输出而定。不想自己输入直接去掉int a = sc.nextInt();这句在f()方法中直接写参数就行了。