这些回答实在看不下去了
代码如下:
public class Demo {
public static void main(String[] args) {
//定义菱形最宽部位的型号数(默认为5)
int count = 5;
//如果命令行给出型号数量的参数,则改为参数给定的
count = args.length == 1 ? Integer.parseInt(args[0]) : count;
//开始打印
for(int i = -(count - 1); i < count; i++) {
for(int j = 0; j < count; j++) {
int abs = i < 0 ? -i : i;
System.out.print(abs - j > 0 ? ' ' : "* ");
}
System.out.println();
}
}
}
运行时:
java Demo 或者 java Demo 10
public class MyPrint {
/**
* 打印一行
* @param star 打印的字符
* @param num 重复打印字符的数目
* @param width 总的宽度
* @return
*/
private boolean printMidLine(String star,int num,int width){
if(num>width)
return false;
int prefix=(width-num)/2+(width-num)%2;//前面需要打印的空格
int sufix=width-num-prefix;//后面需要打印的空格
for(int i=0;i
for(int i=0;i
for(int i=0;i
System.out.println();
return true;
}
/**
* 打印菱形
* @param star 打印的字符
* @param width 菱形宽度
*/
public void printDiamond(String star,int width){
for(int i=1;i
printMidLine(star, width, width);
for(int i=width-1;i>0;i--)
printMidLine(star, i,width);
}
public static void main(String[] args){
MyPrint mp=new MyPrint();
mp.printDiamond("*", 5);//可以通过调整参数打印不同的形状
}
}
public class Draw {
public static void main(String[] args){
//前四行
for(int i = 1; i < 5; i++){
for(int j = 0; j < i; j++){
System.out.print("*");
}
System.out.println();
}
//后五行
for(int i = 5; i > 0; i--){
for(int j = 0; j < i; j++){
System.out.print("*");
}
System.out.println();
}
}
}
还有疑问请百度hi我,满意请采纳。谢谢!
public class Test5{
public static void main(String[] args){
//从键盘输入所要实现的图形的单行做多*数
int x = Integer.parseInt(args[0]);
//图形的上半部分
for(int i = x;i>0;i--)
{
if(i % 2 != 0)
{
for(int j = 0;j<=i/2;j++)
{
System.out.print(" ");
}
for(int k=x;k>=i;k--)
{
System.out.print("*");
}
}
System.out.println();
}
//图形的下半部分
for(int i = 0;i<=x-2;i++)
{
if(i % 2 != 0)
{
for(int j = 0;j<=(i+1)/2;j++)
{
System.out.print(" ");
}
for(int k=x-2;k>=i;k--)
{
System.out.print("*");
}
}
System.out.println();
}
}
}
直接printf 最简单 用循环烦