大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
Java典型例题(打印菱形)
题目:利用*号打印出一个菱形图样
分析:下面逐步分析菱形打印的推演过程
推演过程利用单独的方法演示,使用时直接在主方法中调用对应的方法即可。
第一步,打印一行*号
/** 打印出如下图形: ******* */
public static void print01() {
//每次打印一个星星
for(int i = 1;i<=7;i++) {
System.out.print("*");
}
System.out.println();
}
第二步,打印出一个矩形
/** 打印出矩形: ******* ******* ******* ******* */
public static void print02() {
System.out.println("循环每次打印一个星星");
for(int i = 1;i<=4;i++) {
//行数
for(int j = 1;j<=7;j++) {
//星星个数
System.out.print("*");
}
System.out.println();
}
}
第三步,打印出一个三角型
/** 打印出如下图形 * *** ***** ******* 规律如下: 行数 *号个数 1 1 2 3 3 5 4 7 n 2*n-1 */
public static void print03() {
for(int i = 1;i<=4;i++) {
//控制行数
for(int j = 1;j<=2*i-1;j++) {
//控制星星个数的时候和行有关
System.out.print("*");
}
System.out.println();
}
}
第四步,打印出一个正三角型
/** 打印如下图型: * *** ***** ******* 规律如下: 行数 1 2 3 4 n 空格 3 2 1 0 总行数-n 星星 1 3 5 7 2*n-1 */
public static void print04() {
for(int i = 1;i<=4;i++) {
//控制行数
for(int k = 1;k<=4-i;k++) {
//空格的个数
System.out.print(" ");
}
for(int j = 1;j<=2*i-1;j++) {
//控制星星个数的时候和行有关
System.out.print("*");
}
System.out.println();
}
}
第五步,打印出一个菱形
/** * * * * * *** * ***** * ******* * 行数 1 2 3 4 n * 空格 3 2 1 0 总行数-n * 星星 1 3 5 7 2*n-1 * * * ***** * *** * * * 行数 3 2 1 n * 空格 1 2 3 总行数-n * 星星 5 3 1 2*n-1 * * * * */
public static void print05() {
for(int i = 1;i<=4;i++) {
//控制行数
for(int k = 1;k<=4-i;k++) {
//空格的个数
System.out.print(" ");
}
for(int j = 1;j<=2*i-1;j++) {
//控制星星个数的时候和行有关
System.out.print("*");
}
System.out.println();
}
for(int i = 3;i>=1;i--) {
//控制行数
for(int k = 1;k<=4-i;k++) {
//空格的个数
System.out.print(" ");
}
for(int j = 1;j<=2*i-1;j++) {
//控制星星个数的时候和行有关
System.out.print("*");
}
System.out.println();
}
}
打印结果如图所示:
思考:如何打印出一个中间部分是一个空心的菱形
public static void print06() {
for(int i = 1;i<=4;i++) {
//控制行数
for(int k = 1;k<=4-i;k++) {
//空格的个数
System.out.print(" ");
}
for(int j = 1;j<=2*i-1;j++) {
//控制星星个数的时候和行有关
if(j==1||j==2*i-1) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
for(int i = 3;i>=1;i--) {
//控制行数
for(int k = 1;k<=4-i;k++) {
//空格的个数
System.out.print(" ");
}
for(int j = 1;j<=2*i-1;j++) {
//控制星星个数的时候和行有关
if(j==1||j==2*i-1) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
}
打印结果如图所示:
菱形代码优化
以上实现打印菱形的代码比较复杂,我们可以对代码进行优化
/* 菱形代码优化 */
public static void print07() {
for(int x = -5;x<=5;x++) {
for(int y = -5;y<=5;y++) {
if((x>0?x:-x)+(y>0?y:-y)<=5) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
输出结果如图所示:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187965.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...