您的位置:首页 > 编程语言 > Java开发

如何使用JAVA打印菱形(一)

2015-01-13 17:17 791 查看
使用JAVA如何打印一个菱形呢?不多说了直接上代码看



import java.util.Scanner;

public class Diamond {
/*
* 在学到双循环的时候,每一个人都会接触到打印一个菱形的问题。
* 而这在面试的时候,也是经常被问起的问题。
* 然而对于菱形,主要是分为上下两个部分打印出来。
* 就像我一开始给出的excel的图片一样。
* 在表格里我绘制了一个边长为5的菱形。分成两个部分来看待这个问题。
*/
public static void main(String[] args){
boolean boo=true;//控制do-while循环的变量
Scanner input = new Scanner(System.in);

do{

System.out.println("请输入一个你想要得到的菱形的边长:");

int n = input.nextInt() ;//获得你从屏幕上输入的数字,也就是咱们的菱形的边长,讲解中我主要以n=5来说明问题

/* 菱形的上半部分.
* 从图中我们先看我用颜色标出来的那部分。对于这5行的
* 第一行:空格数:4,星星的个数:1。第二行:空格数:3,星星的个数:3。第三行:空格数:2,星星的个数:5。第四行:空格数:1,星星的个数:7
* 第二行:空格数:0,星星的个数:9。
* 可以很明显的发现,空格数的规律是:边长-行数。需要打印出的星星数目是:行数*2-1。
* 所以我们先去打印空格,再去打印星星
*/
//外循环控制的是行数,内循环控制的是列数
for(int i=1;i<=n;i++){

for(int j=1;j<=n-i;j++){
System.out.print(" ");
}
for(int j=1;j<=(2*i-1);j++){
System.out.print("*");
}
System.out.println();
}
/*
* 菱形的下半部分:
* 接下来可以看到菱形图片中还剩下面一个部分,下面的部分好处理。
* 可以看到这个图形以第五行为对称轴上下对称么?所以我们就倒着打印下半部分。
* 外层循环的数目是:边长-1。也就是还需要打印(边长-1)行。
* 在下半部分菱形的内循环的代码和上半部分中的内循环的代码是一样的
* 控制打印空格数和星星数是与i和n有关的。
*/
for(int i=n-1;i>0;i--){
for(int j=1;j<=n-i;j++){
System.out.print(" ");
}
for(int j=1;j<=(2*i-1);j++){
System.out.print("*");
}
System.out.println();
}
//询问用户需要再输入一个边长么
System.out.println("要继续么?(Y/N)");

String str = input.next();
if(str.equals("Y")){
boo=true;
}else{
boo=false;
}

}while(boo);

System.out.println("程序结束!!!");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 面试 菱形