重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
public class shu{
成都创新互联是一家成都网站建设、网站制作,提供网页设计,网站设计,网站制作,建网站,按需设计,网站开发公司,从2013年成立是互联行业建设者,服务者。以提升客户品牌价值为核心业务,全程参与项目的网站策划设计制作,前端开发,后台程序制作以及后期项目运营并提出专业建议和思路。
public static void main(String[] a){
for(int i=0;i6;i++){
for(int j=6-i;j0;j--){
System.out.print(" ");
}
for(int k=1;k=2*i+1;k++){
System.out.print("*");
}
System.out.println();
}
/*以上是打印了一个上等腰三角形*/
for(int i=6;i=0;i--){
for(int j=6-i;j0;j--){
System.out.print(" ");
}
for(int k=1;k=2*i+1;k++){
System.out.print("*");
}
System.out.println();
}
}
}
只要把for的数据换下 下等腰三角形就出来了,所以原理其实就是打印2个等腰三角形
public class Diamond {
public static void main(String[] args) {
final int size = 4;
for (int i = 1; i = size; i++) {
for (int j = i; j size; j++) {
System.out.print(" ");
}
for (int k = 1; k = 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
for (int i = size - 1; i = 1; i--) {
for (int j = 1; j = size - i; j++) {
System.out.print(" ");
}
for (int k = 2 * i - 1; k 0; k--) {
System.out.print("*");
}
System.out.println();
}
}
}
------------------------
*
***
*****
*******
*****
***
*
首先,这个涉及到行和列,所以,这个肯定是用两个for的嵌套来打印输出。然后,我们要找出这个的规律,因为“磨刀不误砍柴工”,所以找出规律所在,我们才知道应该怎么去下手。比如:我们应该把这个分成上下两个部分,上面部分是:
*****
第一行:三个部分;2个空格 1个*号 2个空格 (i=1)
***** 第二行:三个部分;1个空格 3个*号 1个空格 (i=2)
***** 第三行:三个部分;0个空格 5个*号 0个空格 ( i=3)
为了更加方便去找规律,我们把这个图形补充完整,黑色部分代表着空格,也就是没有显示的部分,而红色部分就是我们的图形的上半部分。所以我们可以得出的规律是:*号的数量和i的关系为:2*i-1 而,空格因为左右一样,所以空格为:3-i。所以上半部分的代码可以这样写:
for(int i =1 ;i=3;i++){
for(int j=1;j=3-i;j++){
System.out.print(" ");//打印左边的空格
}
for(int j=1;j=2*i-1;j++){
System.out.print("*"); //打印*号
}
for(int j=1;j=3-i;j++){
System.out.print(" ");//打印右边空格(也可以省略)
}
System.out.println();//这是每一行打印完就换行
}
那同样的,我们也要在下半部分找出规律来:
***** 第一行:三个部分;1个空格 3个*号 1个空格
(i=1)
***** 第一行:三个部分;2个空格
1个*号 2个空格 (i=2)
所以我们可以得出的规律是:*号的数量和i的关系为:5-2*i
而,空格因为左右一样,所以空格为:i。所以下半部分的代码可以这样写:
for(int i=1;i=2;i++){
for(int j=1;j=i;j++){
System.out.print(" ");
}
for(int j=1;j=5-2*i;j++){
System.out.print("*");
}
for(int j=1;j=i;j++){
System.out.print(" ");
}
System.out.println();
}
同样的任何只要是这样的菱形,我们都可以通过这个规律去打印,只需要把上面的数字替换掉,替换成需要打印的数字就可以了,然后规律大家也可以自己去找。只要很认真熟练地打印出这个例子,那么for的嵌套使用就可以比较熟练了。
参考下面主要代码:
public static void draw()
{
int n=10;
for(int i=1;i=n;i++)//控制行数
{
for(int k=n-1;k=i;k--)//打印空格
{
System.out.print(" ");
}
for(int j=1;j=2*i-1;j++)//打印*
{
System.out.print("*");
}
System.out.println();
}
for(int i=n-1;i=1;i--)
{
for(int k=i;k=n-1;k++)
{
System.out.print(" ");
}
for(int j=1;j=2*i-1;j++)
{
System.out.print("*");
}
System.out.println();
}
}
方式如下:
public class Test {
public static void main(String[] args) {
int lay;
// 菱形的总长度
lay = 7;
// 正序输出上半部分
for (int m = 1; m = (lay + 1) / 2; m++) {
for (int b = 1; b = (lay + 1) / 2 - m; b++)// 输出空格
{
System.out.print(" ");
}
for (int c = 1; c = m * 2 - 1; c++) {
System.out.print("*");
}
// 换行
System.out.println();
}
// 倒序输出下半部分
for (int d = (lay + 1) / 2 - 1; d = 1; d--) {
for (int b = 1; b = (lay + 1) / 2 - d; b++)// 输出空格
{
System.out.print(" ");
}
for (int c = (lay + 1) / 2 - d; c = (lay + 1) / 2 - 2 + d; c++)// (lay+1)/2-1即为下半个三角形
{
System.out.print("*");
}
System.out.println();
}
}
}
运行结果:
Java利用for循环输出空心菱形的实例代码
编写程序,在控制台上输出空心菱形,对角距离为6.
代码如下:
public class Diamond {
public static void main(String[] args) {
printHollowRhombus(6);
}
public static void printHollowRhombus(int size) {
if (size % 2 == 0) {
size++;// 计算菱形大小
}
for (int i = 0; i size / 2 + 1; i++) {
for (int j = size / 2 + 1; j i + 1; j--) {
System.out.print(" ");// 输出左上角位置的空白
}
for (int j = 0; j 2 * i + 1; j++) {
if (j == 0 || j == 2 * i) {
System.out.print("* ");// 输出菱形上半部边缘
} else {
System.out.print(" ");// 输出菱形上半部空心
}
}
System.out.println(""); //换行
}
for (int i = size / 2 + 1; i size; i++) {
for (int j = 0; j i - size / 2; j++) {
System.out.print(" ");// 输出菱形左下角空白
}
for (int j = 0; j 2 * size - 1 - 2 * i; j++) {
if (j == 0 || j == 2 * (size - i - 1)) {
System.out.print("* ");// 输出菱形下半部边缘
} else {
System.out.print(" ");// 输出菱形下半部空心
}
}
System.out.println(""); //换行
}
}
}
效果如图: