Java利用for循环输出空心三角形、空心菱形和空心矩形的代码

空心三角形

空心三角形输出需要用到判断语句,判断每行的空格与星号的输出,下面写出了完整语句,及相关语句的详细注释。空心菱形同样类似

package com.zhebie.test;
public class KongTraingle {
 public static void main(String[] args) {
 int n=5; //n表示输出空心三角形行数,这里以5行为例
 for(int i=1;i<=n;i++) {
  for(int j=1;j<=n-i;j++) { //控制每行最前面的空格
  System.out.print(" ");
  }
  for (int k = 1; k <= 2*i-1; k++) { //控制总的星号和空格
  if(i==1||i==n) {
   /* 控制第一行的与最后一行的星号
   * 当i等于n时,每次循环都只会走这一句
   * 所以会打印2*n-1个星号 */
   System.out.print("*");
  }else if(k==1||k==2*i-1) { //控制第二行到n-1行的星号的输出
   System.out.print("*");
   }else { //控制第二行到n-1行的空格的输出
   System.out.print(" ");
   }
  }
  System.out.println(); //每行输出完毕后进行换行操作
 }
 }
}

空心菱形

空心菱形的上半部分与空心三角形完全一样,但是最后一行不能打印星号。

它的下半部分只需要控制上半部分行数减一,判断部分也会做相应的调整,具体下方代码已做详细说明

package com.zhebie.test;
public class KongTraingle {
 public static void main(String[] args) {
 int n=5;
 //这里输出菱形的上半部分
 for(int i=1;i<=n;i++) {
  for(int j=1;j<=n-i;j++) { //控制每行最前面的空格
  System.out.print(" ");
  }
  for (int k = 1; k <= 2*i-1; k++) { //控制总的星号和空格
  if(i==1) {
   /* 控制第一行的与最后一行的星号
   * 当i等于n时,每次循环都只会走这一句
   * 所以会打印2*n-1个星号 */
   System.out.print("*");
  }else if(k==1||k==2*i-1) { //控制第二行到n-1行的星号的输出
   System.out.print("*");
   }else { //控制第二行到n-1行的空格的输出
   System.out.print(" ");
   }
  }
  System.out.println(); //每行输出完毕后进行换行操作
 }
 //这里输出菱形的下半部分
 for(int i=1;i<n;i++) { //控制四行,所以不能使用小于等于号
  for(int j=1;j<=i;j++) { //控制每行最前面的空格
  System.out.print(" ");
  }
  for (int k = 1; k <= 2*(n-i)-1; k++) { //控制总的星号和空格
  if(k==1||k==2*(n-i)-1) { //控制第一个星号和最后一个星号
   System.out.print("*");
   }else { //控制中间空心部分
   System.out.print(" ");
   }
  }
  System.out.println(); //每行输出完毕后进行换行操作
 }
 }
}

空心矩形

空心矩形相对于空心三角形和空心菱形更简单

package com.zhebie.test;
public class KongRectangle {
 public static void main(String[] args) {
 int n = 5;
 for (int i = 1; i <=n; i++) { //控制输出行数,由于行与行之间有空格效果,所以打印效果为矩形
  for (int j = 1; j <=n; j++) {
  if(i==1||i==n) { //控制第一行与最后一行的星号
   System.out.print("*");
  }
  else if(j==1||j==n) { //控制第二行到倒数第二行星号
   System.out.print("*");
  }else{ //控制第二行到倒数第二行空格
   System.out.print(" ");
  }
  }
  System.out.println(); //每输出完一行进行换行操作
 }
 }
}

输出这些空心图形,主要方式就是在for循环中做判断输出

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Java中SimpleDateFormat日期格式转换详解及代码示例

    SimpleDateFormat是处理日期格式转换的类. 官方API_1.8关于SimpleDateFormat继承于DateFormate截图: SimpleDateFormat的构造器如下: SimpleDateFormat中的格式定义,常用的用红色框圈出: 中文解释: y : 年 M : 年中的月份 D : 年中的天数 d : 月中的天数 w : 年中的周数 W : 月中的周数 a : 上下/下午 H : 一天中的小时数(0-23) h : 一天中的小时数(0-12) m : 小时中的分钟

  • Java使用for循环解决经典的鸡兔同笼问题示例

    本文实例讲述了Java使用for循环解决经典的鸡兔同笼问题.分享给大家供大家参考,具体如下: for循环经典,鸡兔同笼问题 问题:鸡兔同笼,鸡兔一共35只.笼子里脚一共94只,请问分别有多少只鸡和兔? 思路:首先明确思路,鸡的数量*2加上兔子的数量*4等于脚的总数94,这是一个关键点, 代码很简单,但是关键的条件却要花很多时间去找,要是不明白的真的是很烦啊. 利用for循环列举出所有可能直到if满足条件, 列出表达式 鸡*2 加 兔*4 等于 脚总数94 ,这是if的判断条件,满足就可以直接输出

  • java中DecimalFormat四舍五入用法详解

    DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字.它可以支持不同类型的数,包括整数 (123).定点数 (123.4).科学记数法表示的数 (1.23E4).百分数 (12%) 和金额 ($123)这些内容的本地化. 下边先介绍下DecimalFormat的用法: import java.text.*; import java.util.*; public class DecimalFormatDemo { public static void ma

  • Java利用MessageFormat实现短信模板的匹配

    其实没什么技术含量,因为老是想不起来,所以在此文做下记录. 通常我们的应用系统中都会有很多短信的发送,或者是信息邮件等的推送,而这些信息却有着相同的共性,比如只是用户名换了下. 像下面这条,除了红色字体外,其余都是相同的. 尊敬的客户:您的支付宝账户110****11签约网商贷于2018-06-10应还1999.99元,系统将于2018-06-10从该支付宝账户余额.绑定储蓄卡.余额宝.您的网商银行结算账户及余利宝(如有)自动扣款,因余额和储蓄卡还贷款有限额限制,请优先确保余额宝.网商银行结算账

  • Java中DecimalFormat用法详解

    我们经常要将数字进行格式化,比如取2位小数,这是最常见的.Java 提供DecimalFormat类,帮你用最快的速度将数字格式化为你需要的样子.下面是一个例子: importjava.text.DecimalFormat; public class TestNumberFormat{ public static void main(String[]args){ doublepi=3.1415927; //圆周率 //取一位整数 System.out.println(newDecimalForm

  • Java利用for循环输出空心菱形的实例代码

    程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重 for循环,第一层控制行,第二层控制列. 编写程序,在控制台上输出空心菱形,对角距离为6. public class Diamond { public static void main(String[] args) { printHollowRhombus(6); } public static void printHollowRhombus(int size) { if (size % 2 == 0) { size+

  • Java SimpleDateFormat中英文时间格式化转换详解

    SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类.它允许进行格式化(日期 -> 文本).解析(文本 -> 日期)和规范化. SimpleDateFormat使得可以选择任何用户定义的日期-时间格式的模式.但是,仍然建议通过DateFormat中的getTimeInstance.getDateInstance 或 getDateTimeInstance 来创建日期-时间格式器.每一个这样的类方法都能够返回一个以默认格式模式初始化的日期/时间格式器.可以根据需

  • Java中增强for循环的实现原理和坑详解

    前言 引入增强for循环的原因:在JDK5以前的版本中,遍历数组或集合中的元素,需要先获得数组的长度或集合的迭代器,比较麻烦. JDK5中定义了一种新的语法----增强for循环,以简化此类操作.增强for循环只能用在数组或实现Iterable接口的集合上. 语法格式: for(变量类型 变量:需迭代的数组或集合){ } 在JAVA中,遍历集合和数组一般有以下三种形式: for (int i = 0; i < list.size(); i++) { System.out.print(list.g

  • 详解OpenCV For Java环境搭建与功能演示

    OpenCV概述 OpenCV做为功能强大的计算机视觉开源框架,包含了500多个算法实现,而且还在不断增加,其最新版本已经更新到3.2.其SDK支持Android与Java平台开发,对于常见的图像处理需求几乎都可以满足,理应成为广大Java与Android程序员的首先的图像处理框架.Java中使用OpenCV的配置及其简单,可以毫不客气的说几乎是零配置都可以. 一:配置 配置引入OpenCV相关jar包,首先要下载OpenCV的自解压版本,下载地址: http://opencv.org/open

  • Mybatis单个参数的if判断报异常There is no getter for property named 'xxx' in 'class java.lang.Integer'的解决方案

    我们都知道mybatis在进行参数判断的时候,直接可以用<if test=""></if> 就可以了,如下: 1.常规代码 <update id="update" parameterType="com.cq2022.zago.order.entity.Test" > update t_test_l <set > <if test="trnsctWayId != null"

随机推荐