用java实现输出空心菱形的方法

    xiaoxiao2025-05-19  13

    有一部分人在学习java的时候基本都会遇到这个问题,我今天也是被这个问题难倒了,说难也不难,但是for循环一嵌套就蒙了(一部分原因是被书上的代码所迷惑了),一直想不明白,憋的脑袋都要炸了,看啥都不顺眼,于是去网上搜索也是说的不咋详细,有点看不懂,后来我静下心一点一点理思路,终于把这个问题攻破了,在很多大神看来这是一个小问题,但像我这种初学者能自己做出来,已经很高兴了,晚上吃饭都香哈哈,所以,我把这个问题非常详细的整理了下来,发到网上,以便其他的初学者借鉴,同时也少走一些弯路,也减少了因解决不了问题而产生的一连串暴力事件等,废话不熟,走起。 代码部分:

    public class diamond1 { public static void main(String args[]) { // 上半部分行数为四的三角形 // /* // 输出形状为 // i j ("-") // --- 0 3 // -- 1 2 // - 2 1 // 的三角形 // 当i=0(也就是第一行),代表"-"的j=3,然互根据下面两行的规律的得出:j=3-i // */ for (int i = 0; i < 4; i++) { //这里i<4是因为有四行,虽然"-"只有三行,但只不过第四行全是"*" for (int j = 0; j < 3 - i; j++) {//倒着输出三角形,j=3-i,因为从0开始,所以j<3-i System.out.print("-"); } // /* // 输出形状为 // i k ("*") // * 0 1 // * * 1 2 // * * * 2 3 // * * * * 3 4 // 的三角形 // 当i=0(也就是第一行),代表"*"的k=1,然互根据下面三行的规律的得出:k=i+1 // */ for (int k = 0; k < i + 1; k++) {//输出三角形,k=i+1,因为从0开始,所以k<i+1 //注意:这里的*号后面有一个空格" " System.out.print("* ");//这里的是"* ",后面有一个空格 } System.out.println();//换行,儿前面输出"-" "*"的是print(不换行) } //下半部分行数为三的倒三角形 // /* // 输出形状为 // i j ("-") // - 0 1 // -- 1 2 // --- 2 3 // 的三角形 // 当i=0(也就是第一行),代表"-"的j=1,然互根据下面两行的规律的得出:j=i+1 // */ for(int i=0;i<3;i++){//这里i<3是因为有三行 for(int j=0;j<i+1;j++){//输出三角形,j=i+1,因为从0开始,所以j=i+1 System.out.print("-"); } // /* // 输出形状为 // i k ("*") // * * * 0 3 // * * 1 2 // * 2 1 // 的三角形 // 当i=0(也就是第一行),代表"*"的k=3,然互根据下面三行的规律的得出:k=3-i // */ for(int k=0;k<3-i;k++){//倒着输出三角形,k=3-i,因为从0开始,所以k<3-i System.out.print("* "); } System.out.println(); } } }

    把代码粘到eclipse里面运行的结果如图: 因为要做菱形,但做起来要包括前面的“-”号的,所以我它输出出来,方便观察,等做好了以后再把“-”替换成空格“ ” 然后替换成空格的运行结果如图: 替换之后就变成了美妙的菱形,但是要做空心菱形,所以要在原来的基础上添加一些代码: 图中我只是在输出下面的三角形距离,由于要输出空心,所以要把第一个和最后一个“”留下来,剩下的用空格显示。注:空格是两个空格,因为要跟前面的星号空格保持一致“ ”,运行结果如图: 看,中间的星号没有了吧,同理上面的三角形也用相同的方法,最后就会输出一个空心菱形啦

    转载请注明原文地址: https://ju.6miu.com/read-1299057.html
    最新回复(0)