java代码打印菱形 JAVA打印菱形

怎么用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利用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("");     //换行

}

}

}

效果如图:

java打印菱形不是很懂,跪求每句的意思和作用。

import java.util.Scanner;

class 菱形 {

public static void main(String args[]) {

int row;

Scanner keyin = new Scanner(System.in);

System.out.print("请输入菱形的行数:");

row = keyin.nextInt(); //输入的数字整数!

for (int i = 1; i = row / 2 + 1; i++) {//上半部分三角形:不用担心输入偶数,因为折半+1了;

repeat(" ", row / 2 + 1 - i);//空格:注意这是递减

repeat("*", 2 * i - 1);//星:注意这是递减

System.out.println();//打完一排换行!

}

//下半部分三角形原理同上!

for (int i = row / 2; i = 1; i--) {

repeat(" ", row / 2 + 1 - i);//递增

repeat("*", 2 * i - 1);//递减!

System.out.println();//换行!

}

}

public static void repeat(String c, int m) {

for (int i = 1; i = m; i++)

System.out.print(c);

}

/**

 * 

 * 这个程序整体思路:把菱形分成上下两个三角形在打印,因为菱形是奇数

 * 上半部分采用了折半+1的算法,所有你输入任何数都不怕!

 * 如果5,上面就是3下面就是2

 * 如果6上面就是4下面就是3

 * 空格采用的算法与打出来的星,相反方式:一个递增一个递减!

 * 

 * 

 */

}

java打印一个菱形

方式如下:

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打印菱形

public static void main(String[] args) {

for (int row = 0; row 5; row++) {

for (int col = 1; col = 2 * row - 1; col++) {

System.out.print("*");

}

System.out.println();

}

System.out.println("正的直角三角形");

System.out.println("-------------------------------------------------");

for (int row = 0; row 5; row++) {

for (int col = 5; col = 2 * row - 1; col--) {

System.out.print("*");

}

System.out.println();

}

System.out.println("倒的直角三角形");

System.out.println("-------------------------------------------------");

for (int row = 0; row 5; row++) {

for (int col = 0; col 5 - row; col++) {

System.out.print(" ");

}

for (int col = 0; col 2 * row - 1; col++) {

System.out.print("*");

}

System.out.println();

}

System.out.println("正的等腰三角形");

System.out.println("-------------------------------------------------");

for (int row = 0; row 5; row++) {

for (int col = 0; col = row; col++) {

System.out.print(" ");

}

for (int col = 5; col = 2 * row - 1; col--) {

System.out.print("*");

}

System.out.println();

}

System.out.println("倒的等腰三角形");

System.out.println("-------------------------------------------------");

for (int row = 0; row 5; row++) {

for (int col = 5; col row; col--) {

System.out.print(" ");

}

for (int col = 0; col = row; col++) {

System.out.print("* ");

}

System.out.println();

}

System.out.println("正的加空格等腰三角形");

System.out.println("-------------------------------------------------");

for (int row = 0; row 5; row++) {

for (int col = 1; col = row; col++) {

System.out.print(" ");

}

for (int col = 5; col row; col--) {

System.out.print("* ");

}

System.out.println();

}

System.out.println("倒的加空格等腰三角形");

System.out.println("-------------------------------------------------");

for (int row = 0; row 5; row++) {

for (int col = 5; col row; col--) {

System.out.print(" ");

}

for (int col = 0; col = row; col++) {

System.out.print("* ");

}

System.out.println();

}

for (int row = 1; row 5; row++) {

for (int col = 0; col = row; col++) {

System.out.print(" ");

}

for (int col = 5; col row; col--) {

System.out.print("* ");

}

System.out.println();

}

System.out.println("实的菱形");

System.out.println("-------------------------------------------------");

for (int row = 1; row = 5; row++) {

for (int col = 5; col = row; col--) {

System.out.print(" ");

}

for (int col = 1; col = 2 * row - 1; col++) {

if (col == 1 || col == 2 * row - 1) {

System.out.print("*");

} else {

System.out.print(" ");

}

}

System.out.println();

}

for (int row = 1; row = 5; row++) {

for (int col = 1; col = row + 1; col++) {

System.out.print(" ");

}

for (int col = 1; col = 2 * (4 - row) + 1; col++) {

if (col == 1 || col == 2 * (4 - row) + 1) {

System.out.print("*");

} else {

System.out.print(" ");

}

}

System.out.println();

}

System.out.println("空的菱形");

System.out.println("-------------------------------------------------");

for (int row = 1; row = 5; row++) {

for (int col = 5; col = row; col--) {

System.out.print(" ");

}

for (int col = 1; col = 2 * row + 7; col++) {

// 判断行数是第一行要奇数打*

if (row == 1 col % 2 == 1) {

System.out.print("*");

// 判断行数是第一行要偶数打空格

} else if (row == 1 col % 2 == 0) {

System.out.print(" ");

// 判断行数是第一行和最后一行打*

} else if (col == 1 || col == 2 * row + 7) {

System.out.print("*");

} else {

System.out.print(" ");

}

}

System.out.println();

}

for (int row = 1; row = 4; row++) {

for (int col = 1; col = row + 1; col++) {

System.out.print(" ");

}

for (int col = 1; col = 2 * (8 - row) + 1; col++) {

if (row == 4 col % 2 == 1) {

System.out.print("*");

} else if (row == 4 col % 2 == 0) {

System.out.print(" ");

} else if (col == 1 || col == 2 * (8 - row)+ 1) {

System.out.print("*");

} else {

System.out.print(" ");

}

}

System.out.println();

}

System.out.println("掏空的六边形");

System.out.println("----------------------------------------------");

}

刚写了几个例子,其实就是对循环语句的熟练。希望能帮到你!

怎么用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


分享标题:java代码打印菱形 JAVA打印菱形
分享地址:http://pwwzsj.com/article/hidoep.html