Java:打印图形(菱形、平行四边形、三角形....)
1、打印菱形
package ****1;
public class java菱形 {
public static void main(String[] args) {
print(8); // 输出 8 行的菱形
}
public static void print(int size) {
if (size % 2 == 0) {
size++; // 计算菱形大小
}
for (int i = 0; i < size / 2 + 1; i++) {
for (int j = size / 2 + 1; j > i + 1; j--) {
System.out.print(" "); // 输出左上角位置的空白
}
for (int j = 0; j < 2 * i + 1; j++) {
System.out.print("*"); // 输出菱形上半部边缘
}
System.out.println(); // 换行
}
for (int i = size / 2 + 1; i < size; i++) {
for (int j = 0; j < i - size / 2; j++) {
System.out.print(" "); // 输出菱形左下角空白
}
for (int j = 0; j < 2 * size - 1 - 2 * i; j++) {
System.out.print("*"); // 输出菱形下半部边缘
}
System.out.println(); // 换行
}
}
}运行结果:
*
***
*****
*******
*********
*******
*****
***
*
2、 打印三角形
package ****1;
public class java三角形 {
public static void main(String[] args){
for(int i=1;i<=5;i++){
for(int j=5; i<=j; j--)
System.out.print(" ");
for(int j=1; j<=i; j++)
System.out.print("*");
for(int j=1; j<i; j++)
System.out.print("*");
System.out.println();
}
}
}运行结果:
*
***
*****
*******
*********
3、打印平行四边形
package ****1;
public class java平行四边形 {
public static void main(String[] args) {
//外层循环 每次打出一个*
for (int i = 1; i <=5; i++) {
//填充空格
for (int j = 1; j <= 5 - i; j++) {
System.out.print(" ");
}
//内层循环 每次打印一个*
for (int k = 1; k <= 5; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
运行结果:
*****
*****
*****
*****
*****
4、打印圆形
package ****1;
public class java圆形 {
public class Circle{
}
public static void main(String[] args) {
circle(5); // 输出半径为5的圆
}public static void circle(int r) {
for (int y = 0; y <= 2 * r; y += 2) {
int x = (int) Math.round(r - Math.sqrt(2 * r * y - y * y));
int len = 2 * (r - x);
// 圆左的空白
for (int i = 0; i <= x; i++) {
System.out.print(' ');
}
// 左半圆
System.out.print('*');
// 中间空白
for (int j = 0; j <= len; j++) {
System.out.print(' ');
}
// 右半圆
System.out.println('*');
}
}
}运行结果:
* *
* *
* *
* *
* *
* *
5、打印矩形
package ****1;
public class java矩形{
public static void main(String[] args) {
//外层循环 每次输出一行*
for (int i = 1; i <= 5; i++) {
System.out.print("*");
//内层循环 每次输出一个*
for (int j = 1; j <= 5; j++) {
System.out.print("*");
}
System.out.println();
}
}
}运行结果:
******
******
******
******
******