java在控制台输出空心正方形,菱形,空心菱形
使用for和if打印一个空心正方形
/*思路:要想打印一个5x5的空心正方形,首先它的第一横行和最后一行都是填满的,需要全部遍历出来,第二三四行和只有左右两条边是出来的,中间部分为空的。因此在打印第二三四列的时候,需要再进行一下判断,来确定打印空格。*/
for (int x = 0;x<5 ;x++ ) //先确定是5行5列的正方形
{
if (x>0 && x<4) //打印出中间空的情况
{
for (int z=0;z<5 ;z++ ) //打印竖的列
{
if (z==0 | z==4) //第一和最后一列
{
System.out.print("* "); //输出“* ”
}else if(z>=1 && z<=4){ //中间三列
System.out.print(" ");//输出“ ”
} } }
else if(x==0 | x==4){ //第一行和最后一行
for (int y=0;y<5 ;y++ )
{
System.out.print("* ");//全部都输出“*”
}
}
System.out.println("");//println做一个换行(print输出的内容是不换行的)
}
使用for循环打印一个菱形
/*
思路分析: 输出一个菱形,可以拆分成两部分进行思考,分成上下两个三角形来进行输出,那好了,如何输出一个三角那,首先,三角形的是一个等腰三角形,而不是直角三角形,所以横排除了遍历“*”之外,还需要在其前边添加若干空格把它挤过去 ,显得比较好看,所以还得遍历他前边的空格。
*/
for (int x = 0;x<10 ;x++ )//假设一共有10竖排
{
if (x<=5)//上半个三角形的情况
{
for (int z =5-x;z>0 ;z-- )//前边的空格是一个越来越少的三角形形态,所以定义为5-x
{
System.out.print(" ");
}
for (int y=0;y<x ;y++ )// 第一行一个“*”,第二行2个“*”,可以得出列数是和行数相等的,故定义y<x;
{
System.out.print("* ");//此时输出“* ”;
}
}else//这是下半个三角形的情况
{
for (int z =0;z<x-5 ;z++ ) //此时前边空格形态是上少下多,正好为x-5;
{
System.out.print(" ");
}
for (int y=10-x;y>0 ;y-- )//上宽下窄,所以遍历“*”为10-x;
{
System.out.print("* ");
}
}
System.out.println("");
}
使用for循环打印一个空心菱形
/* 思路分析:输出一个空心菱形,需要拆分成三部分进行思考,分成上下两个三角形来进行输出,那好了,如何输出一个三角那,首先,三角形的是一个等腰三角形,而不是直角三角形,所以横排除了遍历中间的菱形部分之外,还需要在其前边添加若干空格把它挤过去 ,显得比较好看,所以还得遍历他前边的空格。中间的空格也需要进行单独遍历,而“*”做的框,只需要把确定的值确定出来,让它输出“*”,即可!
*/
for (int x = 0;x<10 ;x++ )//假设一共有10竖排
{
if (x<=5)//上半个三角形的情况
{
for (int z =5-x;z>0 ;z-- )//前边的空格是一个越来越少的三角形形态,所以定义为5-x
{
System.out.print(" ");
}
for (int y=0;y<x ;y++ )//这里了开始就进入正题了,
{
if (y==0 | y==x-1) //这是两边的框, 此时输出“* ”
{
System.out.print("* ");
}else{//中间剩下的部分输出空格
System.out.print(" ");
}
}
}else{
for (int z =0;z<x-5 ;z++ ) //此时前边空格形态是上少下多,正好为x-5;
{
System.out.print(" ");// 不多说,先把空格怼进去
}
for (int y=10-x;y>0 ;y-- )// 10-x为有几列
{
if (y==1 | y==10-x ) //第一列和10-x(最后一列)输出“*”做一个框出来
{
System.out.print("* ");
}else{ //中间部分输出空格
System.out.print(" ");
}
}
}
System.out.println("");
}
java在控制台输出空心正方形,菱形,空心菱形的更多相关文章
- java打印实心10*10正方形, 空心10*10正方形
public class PrintSquare { public static void main(String[] args) { printSolidSquare(10); System.out ...
- Java(控制台输出)实现猜数字小游戏
import java.util.Scanner; import java.util.Random; public class GuestNum{ public static void main(St ...
- Java如何利用for循环在控制台输出正方形对角线图形
1 /* 2 利用循环在控制台输出如下正方形对角线图形 3 * * * * * * * * * * * 4 * * * * 5 * * * * 6 * * * * 7 * * * * 8 * * * ...
- PHP内置Web Server探究(二)自定义PHP控制台输出console函数
我们在开发APP的服务器端,当和APP进行联调时通常需要实时跟踪URL请求和参数的接收情况. 但PHP并没有像Python或Java专有的控制台输出函数,Python的print()和Java的Sys ...
- java字符串,包,数组及空心正方形,菱形的实例
一.数组:相同类型的多个对像引用类型:所有的类,接口,数组,int[] ints(变量名) = new int[3]new:指的是在内存空间重新开辟一块区域 String s1 = "abc ...
- c++打印实心菱形,空心三角形,十字星,空心正方形,实心平行四边形
今天翻资料的时候,无意间发现了一个文件,是刚接触编程的时候用c++写的一段程序,我称之为"图形打印机",想着把所有图形都打印出来,后来发现其实每种图形的代码都是一个思路,就不想做重 ...
- Java基础知识强化之网络编程笔记10:TCP之客户端读取文本文件服务器控制台输出
1. TCP之客户端读取文本文件服务器控制台输出 (1)客户端:(发送数据到服务端) package cn.itcast_10; import java.io.BufferedReader; impo ...
- Java基础知识强化之集合框架笔记36:List练习之键盘录入多个数据在控制台输出最大值
1. 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值 分析: • 创建键盘录入数据对象 • 键盘录入多个数据,我们不知道多少个,所以用集合存储 • 以0结束,这个简单,只要键盘 ...
- java项目中eclipse控制台输出log4j的信息
最近做的一个hadoop项目中,用MR实现了一个比较复杂的问题,其中的日志信息都是使用的是log4j来处理的.但不知怎么控制台不输出日志信息,只能输出System.out.println()信息,这个 ...
随机推荐
- 如何运行容器?- 每天5分钟玩转 Docker 容器技术(22)
上一章我们学习了如何构建 Docker 镜像,并通过镜像运行容器.本章将深入讨论容器:学习容器的各种操作,容器各种状态之间如何转换,以及实现容器的底层技术. 运行容器 docker run 是启动容器 ...
- Java将头像图片保存到MySQL数据库
在做头像上传的过程中通常是将图片保存到数据库中,这里简单介绍一中将图片保存到数据库的方法: jsp代码: <div> <input class="avatar-input& ...
- 在eclipse中输入.后提示解决
1.调用系统自带的提示: 如果在eclipse中输入.后没有提示对应对象的属性和方法帮助列表,可以进行以下设置就可以了 eclipse -> Window-> Preferences-&g ...
- 写个百万级别full-stack小型协程库——原理介绍
其实说什么百万千万级别都是虚的,下面给出实现原理和测试结果,原理很简单,我就不上图了: 原理:为了简单明了,只支持单线程,每个协程共享一个4K的空间(你可以用堆,用匿名内存映射或者直接开个数组也都是可 ...
- 字符串的拼接python
数字可以强制转换为字符串,但是字符串不能强制转换为数字(会报错) a='abcs' b='dsys' 方法一.a+b 最low的一个方法,因为每+一次内存增加一次 方法二.print '%s%s'%( ...
- Visual studio常用的code snippets
作为全球第一的IDE,VS用起来自然相当的爽,当你在visual studio里敲出几个字母,能帮你生成一大段代码,省时省力又能装逼. 比如,你打一个 prop,然后按tab键,就能生成一个带get/ ...
- java加密算法入门(二)-对称加密详解
1.简单介绍 什么是对称加密算法? 对称加密算法即,加密和解密使用相同密钥的算法. 优缺点: 优点:算法公开.计算量小.加密速度快.加密效率高. 缺点: (1)交易双方都使用同样钥匙,安全性得不到保证 ...
- Spring学习(21)--- AOP之Advice应用(上)
前置通知(Before advice) 在某个连接点(join point)之前执行的通知,但不能阻止连接点前的执行(除非它抛出异常) 返回后通知(After returning advice) 在某 ...
- 由 “无法使用从远程表选择的 lob 定位符” 错误而引导出来的一系列问题解决方案
周一上班遇到一个数据加工问题:无法使用从远程表选择的 lob 定位符,由于数据源表不是自己的,不能对源数据做修改,于是我打起了存储过程的主意 我们公司的存过是分三步走,第一层是同步源数据,第二层是对一 ...
- Linux下一些命令
#修改键盘布局 setxkbmap -layout us #给用户添加工作组 usermod -G groupname username #解压Tar包至指定目录 tar -xvf example.t ...