首页后端开发JAVA关于java打印菱形代码6的信息

关于java打印菱形代码6的信息

时间2023-04-10 04:57:01发布访客分类JAVA浏览1616
导读:Java打印菱形高效简洁代码 public class shu{ public static void main(String[] a { for(int i=0;i6;i++ { for(int j=6-i;j0;j--...

Java打印菱形高效简洁代码

public class shu{

 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个等腰三角形

怎么用java去打印输出一个菱形

首先,这个涉及到行和列,所以,这个肯定是用两个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的嵌套使用就可以比较熟练了。

怎么用java打印菱形?

java打印菱形方法:

package circulationDemo;

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.println("请输入要打印的行数:");

int num = input.nextInt();

t1(num); // 正直角

split();

t2(num); // 倒直角

split();

t3(num); // 等腰三角

split();

t4(num); // 等腰倒三角++

split();

t5(num); // 等腰倒三角--

split();

t6(num); // 实心菱形

split();

t7(num); // 空心菱形(1)

split();

t8(num); // 空心菱形(2)

split();

t9(num); // 空心菱形(3)

}

private static void t9(int num) {

for (int k = 1;  k = num;  k++) {

for (int i = 1;  i = (num - k);  i++) {

System.out.print(" ");

}

System.out.print("*");

for (int i = 1;  i = ((k - 2) * 2 + 1);  i++) {

System.out.print(" ");

}

if (k != 1) {

System.out.print("*");

}

System.out.println();

}

for (int k = num-1;  k = 1;  k--) {

for (int i = 1;  i = (num - k);  i++) {

System.out.print(" ");

}

System.out.print("*");

for (int i = 1;  i = ((k - 2) * 2 + 1);  i++) {

System.out.print(" ");

}

if (k != 1) {

System.out.print("*");

}

System.out.println();

}

}

private static void t8(int num) {

// 上半部分

for (int i = 1;  i = num;  i++) {

// 打印上半部分空格

for (int j = 1;  j = num - i;  j++) {

System.out.print(" ");

}

// 打印原本实心的*部分

for (int 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 (int i = 1;  i = num - 1;  i++) {

for (int j = 1;  j = i;  j++) {

System.out.print(" ");

}

for (int j = 1;  j = 2 * (num - i - 1) + 1;  j++) {

if (j == 1 || j == 2 * (num - i - 1) + 1) {

System.out.print("*");

}  else {

System.out.print(" ");

}

}

System.out.println();

}

}

private static void t7(int num) {

// 打印上半部分

for (int i = 1;  i = num;  i++) {

// 打印空格

for (int j = 1;  j = (num - i);  j++) {

System.out.print(" ");

}

// 打印*的个数

if (i == 1) {

System.out.print("*");

}  else {

System.out.print("*");

// 打印菱形里的空格

for (int j = 1;  j = (2 * i - 3);  j++) {

System.out.print(" ");

}

System.out.print("*");

}

System.out.println();

}

// 打印下半部分

for (int i = num - 1;  i  0;  i--) {

// 打印空格

for (int j = 1;  j = (num - i);  j++) {

System.out.print(" ");

}

// 打印*的个数

if (i == 1) {

System.out.print("*");

}  else {

System.out.print("*");

// 打印菱形里的空格

for (int j = 1;  j = (2 * i - 3);  j++) {

System.out.print(" ");

}

System.out.print("*");

}

System.out.println();

}

}

private static void t6(int num) {

// 上半部分

for (int i = 1;  i = num;  i++) {

for (int j = 1;  j = num - i;  j++) {

System.out.print(" ");

}

for (int j = 1;  j = 2 * i - 1;  j++) {

System.out.print("*");

}

System.out.println();

}

// 下半部分

for (int i = 1;  i = num - 1;  i++) {

for (int j = 1;  j = i;  j++) {

System.out.print(" ");

}

for (int j = 1;  j = 2 * (num - 1 - i) + 1;  j++) {

System.out.print("*");

}

System.out.println();

}

}

private static void t5(int num) {

for (int i = num;  i  0;  i--) {

for (int j = 1;  j = num - i;  j++) {

System.out.print(" ");

}

for (int j = 1;  j = 2 * i - 1;  j++) {

System.out.print("*");

}

System.out.println();

}

回答于 2022-12-14

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 关于java打印菱形代码6的信息
本文地址: https://pptw.com/jishu/2500.html
go语言优势 go语言优势与前景 go语言适合开发web go语言用什么开发工具

游客 回复需填写必要信息