经典题:用Java打印空心菱形

本题是在打印空心金字塔的基础上进行的,不会的点击下面的链接:

经典题:用Java打印空心金字塔

(1)打印无底空心金字塔

输出如下:

开始运行...
请输入层数
6** **   **     **       *
*         *
运行结束。

打印空心金字塔的代码

import java.util.Scanner;
public class Stars{ public static void main(String[] args){Scanner myScanner = new Scanner(System.in);int i;int j;int k;System.out.println("请输入层数");int level = myScanner.nextInt();for (i = 1; i <= level; i++) {for (k = 1; k <= level - i; k++) {System.out.print(" ");}for (j = 1; j <= 2 * i - 1; j++) {if (j == 1 || j == 2 * i - 1 || i == level) {System.out.print('*');}else {System.out.print(" ");}}System.out.println();}}
}

从上面代码可知,如果想打印无底空心金字塔,我们只需要将if中i==level条件去掉。

打印空心无底金字塔的代码

import java.util.Scanner;
public class Stars{ public static void main(String[] args){Scanner myScanner = new Scanner(System.in);int i;int j;int k;System.out.println("请输入层数");int level = myScanner.nextInt();for (i = 1; i <= level; i++) {for (k = 1; k <= level - i; k++) {System.out.print(" ");}for (j = 1; j <= 2 * i - 1; j++) {if (j == 1 || j == 2 * i - 1) {System.out.print('*');}else {System.out.print(" ");}}System.out.println();}}
}

(2)打印V字形

输出案例:

开始运行...
请输入
5
*       **     **   ** **运行结束。

首先,我们需要打印空格,第一行0空格,第二行1空格,第三行2空格,以此类推。
k变量表示空格,i变量表示行数,j变量表示列数,level变量表示层数。

for循环嵌套如下:

for (i = 1; i <= level; i++) {for (k = 1; k <= i - 1; k++) {System.out.print(" ");}System.out.printin();
}

然后打印V字形,我们发现如果V字形为5层,第一层打印第1个和第9个,第二层打印第1个和第7个,第三层打印第1个和第5个,第四层打印第1个和第3个,第五层打印第1个。以此类推,第i层打印第1个和第2*(5-i)+1个。
如果用level代替5,就变成j=1和j=2*(level-i)+1。这是if的判断条件,符合就打印*,不符就打印空格。
在循环中,j从1开始,到2*(level-i)+1结束。

代码如下:

import java.util.Scanner;
public class C {public static void main(String[] args){Scanner myScanner = new Scanner(System.in);int i;int j;int k;       System.out.println("请输入");int level = myScanner.nextInt();for (i = 1; i <= level; i++) {for (k = 1; k <= i - 1; k++) {System.out.print(" ");}for (j = 1; j <= 2 * (level - i) + 1; j++) {if (j == 1 || j == 2 * (level - i) + 1) {System.out.print('*');}else {System.out.print(" ");}}System.out.println();}}
}

(3)打印空心菱形

将(1)和(2)for循环上下合并。

代码如下:

import java.util.Scanner;
public class Stars {public static void main(String[] args){Scanner myScanner = new Scanner(System.in);int i;int j;int k;System.out.println("请输入菱形的边长");int level = myScanner.nextInt();for (i = 1; i <= level; i++) {for (k = 1; k <= level - i; k++) {System.out.print(" ");}for (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 (i = 1; i <= level; i++) {for (k = 1; k <= i - 1; k++) {System.out.print(" ");}for (j = 1; j <= 2 * (level - i) + 1; j++) {if (j == 1 || j == 2 * (level - i) + 1) {System.out.print('*');}else {System.out.print(" ");}}System.out.println();}}
}

输出案例:

开始运行...
请输入菱形的边长
5 ** **   **     *
*       *
*       **     **   ** **运行结束。

经典题:用Java打印空心菱形相关推荐

  1. 利用Java打印空心菱形

    利用Java打印空心菱形 public class Lx {public static void main(String[] args) { //打出空心菱形for (int i = 1; i < ...

  2. java打印空心菱形

    看了韩顺平老师的课真是受益匪浅,其中蕴含的化繁为简,拆分问题的思想可以应对这个问题. 首先将问题简单化,先考虑一半的菱形,再打印出每一行的*,之后考虑前面的空格.这样先得到一个实心菱形,之后我们可以知 ...

  3. java 打印空心菱形,用for循环打印出空心菱形程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 请问当行数过大时该程序为什么不能正常显示菱形? 程序如下: public class Test1 { public static void main(St ...

  4. 【java基础练习】打印空心菱形

    本人是初次接触编程的小白一枚呀,第一次在CSDN上发文章,想要循序渐进记录自己的学习成果,欢迎大佬们提点和纠错呀OvO~在此谢谢大佬[献上花花] 第一篇:打印空心菱形 import java.util ...

  5. 多重循环 ——— 打印九九乘法表 || 经典的打印金字塔(打印整个金字塔 打印空心金字塔 打印空心菱形金字塔)

    打印九九乘法表 分析:每层左边空格的个数=总层数-第几层(i) 每一层的第一个*的位置是   1               每一层的最后一个*的位置是  2i-1 ​ #include <st ...

  6. php菱形循环代码,PHP练习–用for循环打印空心菱形,for菱形_PHP教程

    PHP练习–用for循环打印空心菱形,for菱形 思路:1,写出代码打印实心的金字塔 2.修改代码,把金字塔抛空 3.修改代码,把金字塔倒转 4.修改倒转后的代码,把金字塔抛空 5.修改代码,把具体的 ...

  7. 使用for循环打印空心菱形图案

    使用for循环打印空心菱形图案 打印空心菱形图案 例: 首先我们要知道: 1.外层循环控制的是图形的行数: 2.内层循环控制的是图形的列数. 看菱形图案的左侧有空白区域,这就造成了我们很难理解,空白区 ...

  8. 2021-11-06 编程打印空心菱形

    编程打印空心菱形 描述 所谓"空心菱形"是指:每行由两端为*.中间为空格的字符串构成,每行的字符串中心对齐:上半部分相邻两行字符串长度差2:下半部分与上半部分对称. 编写程序,输出 ...

  9. java打出菱形简介_使用java打印出菱形图案的操作步骤

    使用java打印出菱形图案的操作步骤 发布时间:2020-04-25 17:17:47 来源:亿速云 阅读:118 作者:小新 今天小编给大家分享的是使用java打印出菱形图案的操作步骤,相信很多人都 ...

最新文章

  1. ArcGIS问题:如何定义坐标系
  2. 小宝机器人的储存容量_新iPad Pro储存越来越大:甚至到1T!您应该购买哪种存储容量呢?...
  3. 在windows和linux下如何查看80端口占用情况?是被哪个进程占用?如何终止等
  4. Mybatis Plus 连表操作及分页
  5. python新手入门代码-Python的初学者你现在可以自己quot;看”到代码的运行了!
  6. Guitar Pro如何更改五线谱的符杆方向
  7. 贪吃蛇python语言代码大全_Python编程代码:经典贪吃蛇
  8. BP神经网络模型介绍
  9. 纪录黑马程序员的真实生活
  10. 考研高等数学张宇30讲笔记——第十二讲 二重积分
  11. win10 更新计算机时间,win10电脑时间不能自动更新
  12. 电脑网线连接无线路由扩展设置
  13. matlab的syms无法在函数中使用_matlab syms什么意思_常见问题解析
  14. 【IPD流程学习 一】背景和目标
  15. Java教程:使用POI读取excel文档(根据BV1bJ411G7Aw整理)
  16. JAVA开发与运维(Nginx配置详解)
  17. flutter nfc
  18. GitHub官方出手,一针见血!Spring Boot趣味实战手册来袭(彩版)
  19. 通关HCIE-RS新版实验的正确姿势,请查收!
  20. centos安装并配置VNC Server图形化程序

热门文章

  1. LeetCode题解(1552):将多个球放入指定位置的多个篮子后两球之间最小距离的最大值(Python)
  2. 【服务器数据恢复】服务器断电导致RAID报错的数据恢复案例
  3. python制作英语字典_python制作英文学习字典案列
  4. TensorFlow2.0学习笔记-3.模型训练
  5. Java Class
  6. NASA丨登陆火星六大前沿技术
  7. Zuul动态路由及动态Filter实现
  8. linux -unrar解压缩
  9. msql中常用的DDL语句
  10. DELPHI线程创建与使用