韩顺平Java基础作业——空心金字塔和空心菱形打印:

韩顺平Java基础作业——金字塔和菱形打印:

由简单的直角三角形、实心金字塔再到空心金子塔。包含了while语句实现的代码(小白,自己敲的)
最后拓展到空心菱形


直角三角形

while语句我加了Scanner使参数灵活,for循环的可自行改善:
直接上代码

import java.util.Scanner;
//直角三角形
/*
 *
 **
 ***
 ****
* */
public class Stars {
    public static void main(String[] args) {
//        Scanner sc = new Scanner(System.in);
//        int totalLevel = sc.nextInt();
//        int i = 0;
//        while (i
//            int j = 0;
//            while(j<=i){
//                System.out.print("*");
//                j++;
//            }
//            System.out.println();
//            i++;

        for (int i =  1; i <= 5; i++){
            for (int j = 1; j <= i;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

实心金字塔

import java.util.Scanner;
//实心金字塔
/*
     *
    ***
   *****
  *******
 *********
 */
public class Stars02 {
    public static void main(String[] args) {
//        Scanner sc = new Scanner(System.in);
//        System.out.println("请输入你的层数:");
//        int totalLevel = sc.nextInt();
//        int i = 0;//定义变量i作为金字塔层数
//        while (i
//            int j = totalLevel;//定义变量j=层数,作为当前层要加的空格数量
//            while(j>i){
//                j--;
//                //最后一个空格要开始遍历*号
//                if (j==i){
//                    int k = 0;
//                    //星号个数为等差数列,2n-1
//                    while(k<(2*(i+1)-1)){
//                        System.out.print("*");
//                        k++;
//                    }
//                }else{
//                    System.out.print(" ");
//                }
//            }
//            System.out.println();
//            i++;
//        }

        for (int i =  1; i <= 5; i++){
            //在输出*之前, 还有输出 对应空格 = 总层数-当前层
            for (int k = 1;k <= 5-i; k++){
                System.out.print(" ");
            }
            //控制打印每层的*个数
            for (int j = 1; j <= 2*i-1;j++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

空心金字塔

import java.util.Scanner;
// 空心金字塔
/*
    *
   * *
  *   *
 *******
 */
public class Stars03 {
    public static void main(String[] args) {
//        Scanner sc = new Scanner(System.in);
//        System.out.println("请输入你的层数:");
//        int totalLevel = sc.nextInt();
//        int i = 0;//定义变量i作为金字塔层数
//        while (i
//            int j = totalLevel;//定义变量j=层数,作为当前层要加的空格数量
//            while(j>i){
//                j--;
//                //最后一个空格要开始遍历*号
//                if (j==i){
//                    int k = 0;
//                    //星号个数为等差数列,2n-1
//                    int count = 2*(i+1)-1;
//                    while(k
//                        if (i == totalLevel-1){
//                            System.out.print("*");
//                        }else if (k == 0 || k == count-1){
//                            System.out.print("*");
//                        }else{
//                            System.out.print(" ");
//                        }
//                        k++;
//                    }
//                }else{
//                    System.out.print(" ");
//                }
//            }
//            System.out.println();
//            i++;
//        }
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入总层数:");
        int totalLevel = sc.nextInt();

        for (int i =  1; i <= totalLevel; i++){
            //在输出*之前, 还有输出 对应空格 = 总层数-当前层
            for (int k = 1;k <= totalLevel-i; k++){
                System.out.print(" ");
            }
            //控制打印每层的*个数
            for (int j = 1; j <= 2*i-1;j++){
                if (j == 1 || j == 2 * i - 1 || i == totalLevel){
                    System.out.print("*");
                }else{
                    System.out.print(" ");
                }

            }
            System.out.println();
        }
    }
}

空心菱形

空心菱形的输入只能奇数层,因为我觉得输入偶数层,便成了六边形了。
优化的话,简单点可以加一个if判断层数为奇数还是偶数,再进行打印。这步就交给你们了。哈哈哈哈

import java.util.Scanner;

//打印空心菱形
public class Rhombus {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入总层数:");
        int totalLevel = sc.nextInt();

        for (int i =  1; i <= totalLevel; i++) {
            //先打印菱形上半部
            if (i <= totalLevel / 2 + 1){
                //在输出*之前, 还有输出 对应空格 = 总层数-当前层
                for (int k = 1; k <= (totalLevel / 2 + 1) - i; k++) {
                    System.out.print(" ");
                }
                //控制打印每层的*个数
                for (int j = 1; j <= 2*i-1;j++){
                    if (j == 1 || j == 2 * i - 1 || i == totalLevel){
                        System.out.print("*");
                    }else{
                        System.out.print(" ");
                    }
                }
            }else {//打印菱形下半部
                for (int k = 1; k <= i - (totalLevel / 2 + 1); k++) {
                    System.out.print(" ");
                }
                //控制打印每层的*个数
                //剩余totalLevel - i + 1层,当前层打印2*(totalLevel - i + 1) - 1个*
                //totalLevel - i + 1相当于2n-1中的n
                for (int j = 1; j <= 2*(totalLevel - i + 1) - 1;j++){
                    if (j == 1 || j == 2*(totalLevel - i + 1) - 1){
                        System.out.print("*");
                    }else{
                        System.out.print(" ");
                    }
                }
            }
            System.out.println();
        }
    }
}

第一次发csdn,大家一起加油!

你可能感兴趣的:(Java,java,intellij-idea)