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

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. Node.js学习笔记----day05 (Promise详情)

    认真学习,认真记录,每天都要有进步呀!!! 加油叭!!! 一.回调函数 回调的含义:异步任务里面又嵌套了异步 如图: 没有使用回调之前读取文件,没有办法保证每次执行顺序都是 a--->b---& ...

  2. 支付对接常用的加密方式介绍以及java代码实现

    京东科技 姚永健 一.术语表: 1.对称算法 加密解密密钥是相同的.这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥.对称算法的安全性依赖于密钥,泄漏密钥就意味着 ...

  3. python学习第四周总结

    异常常见类型 异常处理语法结构 异常补充处理 异常处理实战应用 生成器对象 自定义生成器range()功能 yield冷门用法 生成器表达式 模块简介 模块的分类 导入模块的两种句式 导入模块补充说明 ...

  4. statefulset详解及为何结合headless service部署有状态应用

    1.1 有状态应用管理statefulset StatefulSet(有状态集,缩写为sts)常用于部署有状态的且需要有序启动的应用程序,比如在进行SpringCloud项目容器化时,Eureka的部 ...

  5. Osx10.14升级watchman踩坑记

    背景 使用 watchman 检测文件变化通知非常的好用, 但有些时候会出现 watchman 占用内存和 CPU 特别疯狂, 通过 watch-del 也无济与事, 由于 watchman 的版本 ...

  6. 微信小程序组件封装传值以及问题点规避

    封装组件 1.在components文件加下新建组件文件夹,在该文件夹下新建组件 2.在app.json中注册该组件 "usingComponents": { "page ...

  7. redis未授权访问漏洞——简单记录

    从0复现redis未授权访问漏洞 环境:centos8(ip:10.0.0.3) 安装 redis 工具:kali(10.1.1.136) 1. 介绍 Redis REmote DIctionary ...

  8. Git基础操作及协作流程

    一整套流程帮你实践整个 Git 操作基础流程. 来源:https://docs.microsoft.com/zh-cn/learn/paths/intro-to-vc-git/ Git 介绍 配置 G ...

  9. webform项目 aspx页面顶部提示运行时错误(.Net Framwork已下载还是报错)

    找到项目属性页 选择对应的.Net 框架,点击保存,重启一下就好了

  10. windows pwn(一)

    前言 前几天因为看CS shellcode装了一个win10虚拟机,然后正好因为逆向课老师要装一系列工具.于是就想起来之前一直想看的windows pwn,就顺便装了一下相关工具并且入门了一下. 工具 ...