打印空心菱形(Java)
很多学习一个编程语言的初学者,在学到循环结构的应用这一部分的时候,入门题大多都会碰到关于打印菱形的题。这确实是一个很好的入门题,作为学习编程一年多的人了,在碰到这种题也难免要提笔算一算。打印菱形时,关于每行空格的个数和星星的位置,值得在纸上画一画,找出空格个数与行数的等量关系式,是for循环确定循环变量范围与步长的关键。
功能:输入菱形的高hight (其中hight为奇数),打印高为hight的菱形。如果输入hight为偶数,则结束程序
话不多说
没有解析和图解,因为最近较忙,以后再添上
public static void main(String[] args) {Scanner sc = new Scanner(System.in);int hight = sc.nextInt();//如果高度为偶数,画不出完美的菱形,直接return结束程序if (hight % 2 == 0) return;//开始画 第一行for (int j = 0; j < (hight-1)/2; j ++) {System.out.print(" ");}System.out.println("*");//画第二行开始的图形for (int i = 1; i < (hight+1)/2; i++) {//第一个星星//首先打印空格for (int j = 0; j < (hight-2*i-1)/2; j ++) {System.out.print(" ");}System.out.print("*");//第二个星星for (int j = 0; j < 2*i-1; j ++) {System.out.print(" ");}System.out.println("*");}//画菱形的下半部分for (int i = 0; i < (hight-1)/2-1; i++) {for (int j = 0; j < i+1; j++) {System.out.print(" ");}System.out.print("*");for (int j = 0; j < hight-2*(i+2); j++) {System.out.print(" ");}System.out.println("*");}//最后一行for (int j = 0; j < (hight-1)/2; j ++) {System.out.print(" ");}System.out.println("*");}
测试:输入11
结果:
效果还是比较完美的
打印空心菱形(Java)
很多学习一个编程语言的初学者,在学到循环结构的应用这一部分的时候,入门题大多都会碰到关于打印菱形的题。这确实是一个很好的入门题,作为学习编程一年多的人了,在碰到这种题也难免要提笔算一算。打印菱形时,关于每行空格的个数和星星的位置,值得在纸上画一画,找出空格个数与行数的等量关系式,是for循环确定循环变量范围与步长的关键。
功能:输入菱形的高hight (其中hight为奇数),打印高为hight的菱形。如果输入hight为偶数,则结束程序
话不多说
没有解析和图解,因为最近较忙,以后再添上
public static void main(String[] args) {Scanner sc = new Scanner(System.in);int hight = sc.nextInt();//如果高度为偶数,画不出完美的菱形,直接return结束程序if (hight % 2 == 0) return;//开始画 第一行for (int j = 0; j < (hight-1)/2; j ++) {System.out.print(" ");}System.out.println("*");//画第二行开始的图形for (int i = 1; i < (hight+1)/2; i++) {//第一个星星//首先打印空格for (int j = 0; j < (hight-2*i-1)/2; j ++) {System.out.print(" ");}System.out.print("*");//第二个星星for (int j = 0; j < 2*i-1; j ++) {System.out.print(" ");}System.out.println("*");}//画菱形的下半部分for (int i = 0; i < (hight-1)/2-1; i++) {for (int j = 0; j < i+1; j++) {System.out.print(" ");}System.out.print("*");for (int j = 0; j < hight-2*(i+2); j++) {System.out.print(" ");}System.out.println("*");}//最后一行for (int j = 0; j < (hight-1)/2; j ++) {System.out.print(" ");}System.out.println("*");}
测试:输入11
结果:
效果还是比较完美的
发布评论