实现用"*"表示不同几何图形的实心和空心
我当年学习的代码总结,好青涩,特此分享,测试都好着哦。
/** * 作者:打不死的小强(Cockroach_Ge) * 时间:2014-7-21 21:24 功能:实现用"*"表示不同几何图形的实心和空心 参数:1、输入对应图形编号:bh 2、输入相应图形的层数:layer 3、共有14种图形 4、有效代码量共计:264行 用户指南:@1:运行程序后,进入主界面 @2: 用户输入对应图形的编号,可进入求对应图形的方法体内 @3:接着输入随意的图形层数,回车可显示对应几何图形的实心和空心 */ package com.jinzhi.FirstWork; import java.util.*; public class PrintXingXing { public static void main(String[] args) { GeZhongXingXing tx = new GeZhongXingXing(); Scanner sz = new Scanner(System.in); System.out.println("请输入:1、三角形 2、平行四边形 3、菱形 4、退出!"); int bh = sz.nextInt(); switch (bh) { case 1: tx.SanJiao(); break; case 2: tx.PingXing(); break; case 3: tx.LingXing(); break; case 4: break; default: } sz.close(); } } class GeZhongXingXing { int i, j, k; void SanJiao() { Scanner s = new Scanner(System.in); System.out.print("请输入层数:"); int layer = s.nextInt(); System.out.println("左上直角三角形:"); //外层代表行,内层代表列 for(i = 0; i < layer; i++) { for(j = 0; j < (2 * i) + 1; j++) { System.out.print("*");//注意这个错误,找得好苦啊! } System.out.println(); } System.out.println("左上直角空心三角形:"); for(i = 0; i < layer; i++) { for(j = 0; j < (2 * i) + 1; j++) { if(i == (layer - 1)) {//打印最后一行 System.out.print("*");//注意这个错误,找得好苦啊! }else { if(j == 0 || j == (2 * i)) { System.out.print("*"); }else { System.out.print(" "); } } } System.out.println(); } System.out.println("右下直角三角形:"); for(i = 0; i < layer; i++) { for(k = 0; k < (2 * i); k++) { System.out.print(" "); } for(j = 0; j < (((2 * layer) - 1) - (2 * i)); j++) { System.out.print("*"); } System.out.println(); } System.out.println("右下直角空心三角形:"); for(i = 0; i < layer; i++) { for(k = 0; k < (2 * i); k++) { System.out.print(" "); } for(j = 0; j < (((2 * layer) - 1) - (2 * i)); j++) { if(i == 0) {//第一行 System.out.print("*"); }else { if(j == 0 || j == ((((2 * layer) - 1) - (2 * i))) - 1) { System.out.print("*"); }else { System.out.print(" "); } } } System.out.println(); } System.out.println("正的等腰三角形:"); for(i = 0; i < layer; i++) { for(k = 0; k < (layer - 1 - i); k++) { System.out.print(" "); } for(j = 0; j < (2 * i) + 1; j++) { System.out.print("*"); } System.out.println(); } System.out.println("正的空心等腰三角形:"); for(i = 0; i < layer; i++){ for(k = 0; k < (layer - 1 - i); k++){ System.out.print(" "); } for(j = 0; j < (2 * i) + 1; j++){ if(i == 0 || i == (layer - 1)){ System.out.print("*"); }else{ if(j == 0 || j == ((2 * i))){ System.out.print("*"); }else{ System.out.print(" "); } } } System.out.println(); } System.out.println("倒的等腰直角三角形:"); for(i = 0; i < layer; i++) { for(k = 0; k < i; k++) { System.out.print(" "); } for(j = 0; j < ((2 * layer) - 1)- (2 * i); j++) { System.out.print("*"); } System.out.println(); } System.out.println("倒的等腰直角空心三角形:"); for(i = 0; i < layer; i++) { for(k = 0; k < i; k++) { System.out.print(" "); } for(j = 0; j < ((2 * layer) - 1)- (2 * i); j++) { if(i == 0) { System.out.print("*"); }else { if(j == 0 || j == (((2 * layer) - 1)- (2 * i)) - 1) { System.out.print("*"); }else { System.out.print(" "); } } } System.out.println(); } s.close(); } void PingXing() { Scanner s = new Scanner(System.in); System.out.print("请输入层数:"); int layer = s.nextInt(); System.out.println("向左斜的平行四边形:"); for(i = 0; i < layer; i++) { for(k = 0; k < i; k++) { System.out.print(" "); } for(j = 0; j < ((2 * layer) - 1); j++) { System.out.print("*"); } System.out.println(); } System.out.println("向左斜的空心平行四边形:"); for(i = 0; i < layer; i++) { for(k = 0; k < i; k++) { System.out.print(" "); } for(j = 0; j < (2 * layer) - 1; j++) { if(i == 0 || i == (layer - 1)) { System.out.print("*"); }else { if(j == 0 || j == (2 * layer) - 2) { System.out.print("*"); }else { System.out.print(" "); } } } System.out.println(); } System.out.println("向右斜的平行四边形:"); for(i = 0; i < layer; i++) { for(k = 0; k < layer - i; k++) { System.out.print(" ");; } for(j = 0; j < (2 * layer) - 1; j++) { System.out.print("*"); } System.out.println(); } System.out.println("向右斜的空心平行四边形:"); for(i = 0; i < layer; i++) { for(k = 0; k < layer - i; k++) { System.out.print(" ");; } for(j = 0; j < (2 * layer) - 1; j++) { if(i == 0 || i == (layer - 1)) { System.out.print("*"); }else { if(j == 0 || j == ((2 * layer) - 1) - 1) { System.out.print("*"); }else { System.out.print(" "); } } } System.out.println(); } s.close(); } void LingXing() { Scanner s = new Scanner(System.in); System.out.print("请输入层数:"); int layer = s.nextInt(); System.out.println("实心菱形"); for(i = 0; i < layer; i++) { for(k = 0; k < (layer - 1 - i); k++){ System.out.print(" "); } for(j = 0; j < (2 * i) + 1; j++) { System.out.print("*"); } System.out.println(); } for(i = 0; i < layer - 1; i++) { for(k = 0; k < (i + 1); k++) { System.out.print(" "); } for(j = 0; j < ((2 * layer) - 3) - (2 * i); j++) { System.out.print("*"); } System.out.println(); } System.out.println("空心菱形"); for(i = 0; i < layer; i++){ for(k = 0; k < (layer - 1 - i); k++){ System.out.print(" "); } for(j = 0; j < (2 * i) + 1; j++){ if(j == 0 || j == (2 * i)){//这里着重变化了 System.out.print("*"); }else{ System.out.print(" "); } } System.out.println(); } for(i = 0; i < layer - 1; i++) { for(k = 0; k < (i + 1); k++) { System.out.print(" "); } for(j = 0; j < ((2 * layer) - 3) - (2 * i); j++) { if(j == 0 || j == ((((2 * layer) - 3) - (2 * i))- 1)) {//这里也是,和打印空心三角形不一样 System.out.print("*"); }else { System.out.print(" "); } } System.out.println(); } s.close(); } }