打印空心菱形如果一开始觉得比较困难的话,那么不妨分成几个步骤走完成菱形的打印。

1.先打印一个直角三角形(都是由星星组成的)

代码如下:

import java.util.Scanner;//导入Scanner类所在的包
public class RightTriangle{
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);//创建一个新的Scanner类用来接受总层数totalLevel
System.out.println("请输入总层数totalLevel:");
int totalLevel = myScanner.nextInt();
for (int i = 1 ; i <= totalLevel ; i++ ) {//一共要打印的总层数
for (int j = 1 ; j <= 2 * i -1 ; j ++) {//每一层要打印的星星的个数(2*N-1)
System.out.print("*");
}
System.out.println();
}
}
}

编译运行,在DOS窗口下输入5,结果如下图所

2.先打印一个实心的三角形(就是空格和星星的组成)

代码如下:

import java.util.Scanner;
public class SolidTriangle{
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);//创建一个新的Scanner类用来接受总层数totalLevel
System.out.println("请输入总层数totalLevel:");
int totalLevel = myScanner.nextInt();
for (int i = 1 ; i <= totalLevel ; i++ ) {//一共要打印的总层数
for (int j = 1 ; j <= totalLevel - i ; j++ ) {//每一层要打印的空格数
System.out.print(" ");
}
for (int k = 1 ; k <= 2 * i -1 ; k ++) {//每一层要打印的星星的个数(2*N-1)
System.out.print("*");
}
System.out.println();
}
}
}

编译运行,在DOS窗口下输入5,结果如下图所示:

3.先打印一个空心的三角形

代码如下:

import java.util.Scanner;
public class HollowTriangle{
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);
System.out.print("请输入总层数:");
int totalLevel = myScanner.nextInt();
for (int i = 1 ; i <= totalLevel ; i++ ) {//一共要打印的层数
if (i == totalLevel) {
for (int m = 1 ; m <= 2 * i - 1 ; m++ ) {
System.out.print("*");
}
}else{
for (int j = 1 ; j <= totalLevel - i ; j++ ) {//每层要打印的第一批空格数
System.out.print(" ");
}
System.out.print("*");
for (int k = 1 ; k <= 2 * i - 3 ; k++ ) {//每层要打印的第二批的空格数
System.out.print(" ");
}
if (i != 1) {
System.out.print("*");
}
System.out.println();
}
}
}
}

编译运行,在DOS窗口下输入5,结果如下图所示:

4.先打印一个空心的菱形(由两个空心的三角形组成,因为菱形是对称的所以下面的那一部分的空心三角形要比上一部分的空心三角形的总层数减少一个,这个方能构成一个菱形。)

代码如下:

import java.util.Scanner;
public class HollowDiamond{
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);
System.out.print("请输入上层总层数:");
int totalLevel = myScanner.nextInt();
//打印菱形的上半部分
for (int i = 1 ; i <= totalLevel ; i++ ) {//上层所需要打印的总层数
for (int j = 1; j <= totalLevel - i ; j++) {//每层要打印的空格数(就是总层数减去所在的层数)
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++ ) {//每一行要输入的星星的数量(所打印的星星的总数是2*N-1)
if (k == 1 || k == 2*i - 1 ) {//第一个和最后一个打印星星,其余打印空格
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println();//每一行结束后就进行换行的操作.
}
//打印菱形的下半部分
for (int m = 1 ; m <= totalLevel -1 ; m++) {//因为菱形是对称的所以下面的总层数是上层总层数减去一才能构成菱形
for (int n = 1; n <= m ; n ++ ) {
System.out.print(" ");
}
for (int p = 1; p <= 2 * (totalLevel - m) -1 ; p++) {//每一行要输入的星星的数量
if (p == 1 || p == 2 * (totalLevel - m) - 1) {//totalLevel- m就是方便的转换,比如说上层一共有五层,那么第六行和第四行的情况一样
System.out.print( "*");
}else{
System.out.print(" ");
}
}
System.out.println();//每一行结束后就进行换行的操作.
}
}
}

编译运行,在DOS窗口下输入5,结果如下图所示:

Java语言打印空心菱形的更多相关文章

  1. c语言打印空心菱形

    ***算法:把菱形的中心看成坐标的原点(,),由此可以知道,如果|x| + |y| <= n;则打印输出"*"号,否则打印输出" " int mai(){ ...

  2. Java打印空心菱形

    使用Java打印空心菱形 public static void main(String[] args) { int n = 5; //这里输出菱形的上半部分 for (int i = 1; i < ...

  3. java中打印实心菱形以及空心菱形的方法

    一.打印效果 二.实现代码汇总 为了方便初学者对代码的理解,建议熟练t1到t5为各种三角的打印,然后再进行菱形的打印实现. package circulationDemo; import java.u ...

  4. java 打印空心菱形的两种实现

    第一种实现方式: //打印给定行数的空心菱形 public static void draw(int size){ if (size % 2 == 0) //如果是偶数行变为奇数 { size++; ...

  5. for循环打印空心菱形的新方法

    相信大家在学习流程控制的循环结构时,一定都用for循环绘制过菱形和空心菱形吧,我记得我当时写的很麻烦,把一个菱形分为上下两部分,上面2重for循环,下面2重for循环,相信有很多的小伙伴都是这样做的吧 ...

  6. java语言 打印素数实例

    //根据定义判断素数---循环n-1次,当n很大时循环n次 public static void main(String[] args) {        // TODO Auto-generated ...

  7. java语言打印上三角和下三角,进一步得到九九乘法表

    关于下面两种图形的打印问题 ***** 与 * ****  ** *** *** ** **** *  ***** 一:程序 1.先打印下三角 2.结果 3.后打印上三角 4.结果 二:知识点 1.f ...

  8. Java温故而知新-空心菱形

    空心菱形 今天做题练手,题目是空心菱形,一开始没什么思路,去网上找了找,发现很难找到讲的通透的,自己现在独立做出来了,记录一下,以备后用. * * * * * * * * * * * * * * * ...

  9. 案例>>>用绝对值的方法打印出菱形

    import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = ...

  10. Java星星打印三角形小结

    1.直角三角形的打印

随机推荐

  1. C#Autofac依赖注入批量注入 (目前版本.netcore3.0)

    上一文:C#依赖注入一看就会系列 链接:C#依赖注入(直白明了)讲解 一看就会系列 - 22222220 - 博客园 (cnblogs.com) 上一次我们知道了 为什么要依赖注入,这次我们就用使用人 ...

  2. 浅谈Python中的in,可能有你不知道的

    Python中的in,没那么简单,虽然也不难 https://docs.python.org/zh-cn/3.9/reference/expressions.html#membership-test- ...

  3. "万字" Java I/O 详解

    Java I/O流讲解 每博一文案 谁让你读了这么多书,又知道了双水村以外还有一个大世界,如果从小你就在这个天地里,日出而作,日落而息. 那你现在就会和众乡亲抱同一理想:经过几年的辛劳,像大哥一样娶个 ...

  4. 线程基础知识10-volatile

    1 简介 Volatile保证了可见性和有序性,没有保证原子性. 1.1 保证可见性简介 可见性就是指当一个线程修改了共享变量的值时,其他线程能够立即得知这个修改.volatile变量做到了这一点. ...

  5. spring-cloud03-consul

    官网的安装说明https://learn.hashicorp.com/tutorials/consul/get-started-install 1.下载安装 环境:阿里云服务器,consul1.9.5 ...

  6. H5商城项目源码 (可预览 测试有效)

    商城简介 这个商城项目由首页模块,发现模块,购物车模块以及我的等四大模块组成了33个相关内容界面 预览下载直通车 预览地址 首页模块 首页拥有搜索模块.分类模块.内容模块组成 发现模块 发现模块主要是 ...

  7. TIM + DMA + ADC

    #include "public.h" #define FFT_POINT (256) static uint16_t _DmaBuffer[FFT_POINT]; static ...

  8. Archiver Appliance bug report(问题已解决,见文末)

    本来想发到EPICS mailist里问的,可是发了两次给弹回来,不方便的等不及了,就在这问吧,谁知道怎么解决麻烦一定指导一下. ########################## Hi ALL: ...

  9. EPICS Archiver Appliance在Centos7的定制部署

    EPICS Archiver Appliance的定制部署1 EPICS Archiver Appliance的定制部署2 上面两篇是在Centos8下成功,后来又想在Centos7下跑成功,按上面的 ...

  10. vue3和vue2的区别

    一.Vue3介绍 Vue 新版本的理念成型于 2018 年末,当时 Vue 2 的代码库已经有两岁半了.比起通用软件的生命周期来这好像也没那么久,但在这段时期,前端世界已经今昔非比了 在更新(和重写) ...