模式程序 Java打印星星、金字塔和数字

⚡ 智能摘要

模式程序 Java 以固定形状打印星号、数字或字母,每个星号、数字或字母都是由嵌套循环构建的,其中外层循环计算行数,内层循环放置空格和字符。

  • 🔘 定义: 图案打印功能可以将符号、数字或字母排列成控制台上定义的形状。
  • ☑️ 分类: 共有三种类型,分别是星形图案、数字图案和字符图案。
  • 结构体: 外层循环处理行,内层循环处理前导空格和打印字符。
  • 🧪 例子: 涵盖半三角形、沙漏形、菱形、对角三角形和字母金字塔形程序。
  • 🛠️ 技术: 字符形状将整数种子转换为字符,字母 A 的种子从 65 开始。
  • 📊 受益: 写作模式可以提高循环控制、索引运算和面试前的模拟演练技能。

模式程序 Java 打印星形、金字塔形和数字形状

图案打印程序是包含特定格式的字母或其他字符的图案或符号。 Java 模式编码增加了程序员的逻辑构建能力,帮助他们成为优秀的程序员。

这里的每个例子都只需要嵌套循环和基本操作。 Java 语法。

模式分类

我们可以绘制出无数种图案 Java所有模式都可以通过三种不同的方式执行。

有三个主要类别用于识别 Java 模式程序。

  • 星形图案: In Java 星型图案程序,星型图案是一系列 星号 (*) 用于创建各种形状,例如金字塔星形图案程序、紧密三角形、左三角形、菱形、正方形以及更多其他图案。 Java.
  • 数字模式: 为了练习流程控制语句,另一种模式类型是数字模式程序。 Java数字模式程序由数字/计数组成。通常,我们会设置循环迭代器“i”的值来生成模式编程中的数字。数字模式所需的最少循环次数也是两次。数字模式程序 Java 也适用于行和列系统。
  • 字符图案: 字符模式编程由以下字符组成: 英文字母。这是提高编码技能的另一种方法,但这里我们处理的是字符,而不是数字或星号。模式可以在整个模式中具有相同的字符,也可以具有不同的字符,这取决于您应用的逻辑。

下表显示了各类别之间的变化。

类别 印刷单元 打印值来自哪里 样本输出
星纹 星号 符号是固定的,所以只有循环边界会改变。 * * *
数字模式 Digit 循环迭代器 i 或 j 直接打印出来 1 2 3
字符模式 博客 将整数种子强制转换为字符,起始值为 65。 ABC

在这三种情况下,外层循环都用于计算行数,一个内层循环用于打印对齐空格,另一个内层循环用于打印可见字符。唯一改变的是打印的单位。

同样的循环技巧也适用于其他经典练习,例如 选择排序, 插入排序,并 阿姆斯特朗数 程序。

星形图案优先出现,因为符号永远不会改变,只有循环边界才重要。

星型图案计划 Java

星号图案在控制台上打印星号,图案形状完全取决于您编写的代码。

半左三角星型图案程序:

以下程序会打印出这个左半三角形:

控制台输出显示一个由六行星形组成的半左三角形

public class LeftStarPattern{    
public static void main(String args[]){    
 int i, j, row = 6;       
   for (i=0; i<row; i++)    {  
      for (j=2*(row-i); j>=0; j--)         
      {  System.out.print(" ");  
	  }   
        for (j=0; j<=i; j++ )   
		{   
			System.out.print("* "); 
		}   
	System.out.println();  
	}
  }
}

Code 解释:

  • 声明 内部, int j. 声明并初始化行变量作为 整行.
  • i 是外部“for”循环的迭代器,j 是内部“for”循环的迭代器,“row”包含金字塔应具有的行数。
  • 在嵌套的 for 中,外部的“for”代表行,内部的“for”代表列。
  • 在外层“for”中,用 0 初始化迭代器“i”,设置条件 i < row,并增加 i。
  • 现在内部的“for”循环用 2*(row-i) 初始化并减少。
  • 嵌套的“for”在控制台屏幕上打印空间。
  • 在嵌套的“for”主体外部放置另一个“for”循环。此“for” 印刷之星 嵌套的 for 执行完毕后,循环执行,直到 j<=i。

沙漏星图程序:

两个叠在一起的金字塔可以制成这个沙漏:

控制台输出显示一个由两个星形金字塔构成的沙漏形状。

public class Main
{
    public static void main(String[] args)
    {
        int rows = 5;            
        for (int i= 0; i<= rows-1 ; i++)
        {
            for (int j=0; j <i; j++)
            {
                System.out.print(" ");
            }
            for (int k=i; k<=rows-1; k++)
 { 
System.out.print("*" + " ");
 } 
System.out.println(""); 
} 
for (int i= rows-1; i>= 0; i--)
        {
            for (int j=0; j< i ;j++)
            {
                System.out.print(" ");
            }
            for (int k=i; k<=rows-1; k++)
            {
                System.out.print("*" + " ");
            }
            System.out.println("");
        }
        
    }
}

Code 解释:

  • Code 从开始 公共静态无效 主要, int 行 将定义沙漏所包含的行数。
  • 有两个嵌套的“for”,第一个将显示向下的金字塔,第二个将显示向上的金字塔。
  • 在嵌套的 for 中,外部的“for”代表行,内部的“for”代表列。
  • 在外部“for”循环中直到 i <= row-1,内部“for”循环直到 i。 打印系统 在控制台上打印空间。
  • 第二个内循环在控制台上打印星号加空格。
  • 当第一个内循环在 i=0 时完全执行完毕后,第二个内循环也完全执行完毕。
  • 然后外层循环递增。此循环持续进行,直到条件变为假。
  • 第二个嵌套循环呈现向上的金字塔,仅改变第一个嵌套循环外层循环的初始化和条件。
  • 它将显示向上金字塔。向下和向上金字塔都会使 沙漏星形图案.

钻石形星形图案程序:

由向上和向下的金字塔构成这个菱形:

控制台输出显示由两个金字塔组成的星形菱形图案。

public class Main
{
	public static void main(String args[])
	{
		int n, i, j, space_0 = 1;
		n = 6;
		space_0 = n - 1;
		for (j = 1; j<= n; j++)
		{
			for (i = 1; i<= space_0; i++)
			{
				System.out.print(" ");
			}
		space_0--;
		for (i = 1; i <= 2 * j - 1; i++)
		{ 
			System.out.print("*");
		}
		System.out.println(""); 
	}
	space_0 = 1;
	for (j = 1; j<= n - 1; j++)
	{
	for (i = 1; i<= space_0; i++)
	{
		System.out.print(" ");
	}
	space_0++;
	for (i = 1; i<= 2 * (n - j) - 1; i++)
	{
		System.out.print("*");
	}
	System.out.println("");
	}
  }
}

Code 解释:

  • 钻石星形图案, 'n' 是行数,存储在 space_1 中的 n-0。
  • 在嵌套的 for 中,外部的“for”代表行,内部的“for”代表列。
  • 第一个嵌套的“for”显示向上的金字塔。外部“for”循环直到 n,内部 for 循环直到 space_0 内循环在控制台上显示空间。
  • 还有一个内部“for”循环,直到 i<= 2 * j – 1,并在这个内部“for”打印系统打印一行之外显示一个星号。这个嵌套循环打印上金字塔。
  • 另一个嵌套的“for”显示向下的金字塔。外层“for”循环直到 i<=n-1,第一个内层“for”打印空格,第二个内层“for”打印星号。
  • 在内部“for”外面,打印行空间。向上和向下的金字塔都构成了菱形图案。

直角三角形星型空间格局方案:

j 和 i 的模量插入了这些间隙:

控制台输出显示一个由星形组成的直角三角形,星形间距基于模数。

public class AsterikProgramJava { 
 public static void main(String[] args) { 
  for(int i=1;i<=10;i++) 
  { 
    for(int j=1;j<=i+i;j++)
	{
		int mid; 
		mid=j%i; 
		if(mid==0) 
			System.out.print("* "); 
		else 
			System.out.print("*");
	}
	System.out.print("\n");
	}
 }
}

Code 解释:

  • 上述模式 代码中,外部的“for”负责处理行数,内部的“for”负责维护列数。
  • 当外部的‘for’为1时,表示第一行,当内部的‘for’为1时,表示第一列。
  • 在内部“for”中,声明一个名为 mid 的变量并存储 j/i 的余数。这会将 i 和 j 的值相除以获得模数。
  • 因此,如果模数为 0,则显示星号和空格;否则,仅显示星号。在内部“for”之外,打印一行。

现代 Java 注意事项: ,来自 Java 11 空间环路可以替换为 System.out.print(" ".repeat(n))并按顺序构建每一行 StringBuilder 之前 println() 调用速度更快。保留原始代码,因为它清晰地展示了运算过程。

互换ping 循环计数器的星号会将每个星形变成数字形状。

数字模式程序 Java

数字模式由数字组成;我们可以从数字模式中绘制出许多不同的形状。

对半三角形图案程序:

先倒数再倒数,就能得到这个数字三角形:

控制台输出显示了一个由数字组成的反三角形的一半。

public class Number_p  {  
	public static void main(String[] args)   {  
	int i, j, rows_0=5;  
	for (i = rows_0; i >= 1; i--) 
	{  
		for (j = 1; j <= i; j++)  
		{  
			System.out.print(j+" "); 
		}  
		System.out.println();  
	}  
	for (i = 2; i <= rows_0; i++)   {  
		for (j = 1; j <= i; j++) {  
			System.out.print(j+" ");
		}  
		System.out.println(); 
		}
	}
}

Code 解释:

  • 为了绘制此图案,我们将使用两个嵌套的“for”循环。一个循环将打印第一个金字塔,另一个循环将显示第二个金字塔。
  • 声明 内部、int j 和 int row_0,并用所需的行数初始化行。此处的行值为 5。
  • 设置第一个嵌套“for”的外部“for”循环,用行数初始化 i,然后迭代直到 i >= 并减少迭代器。这个外部“for”处理行。
  • 在内层“for”中设置条件 j=1 并迭代直到 j<=i。在内层循环体中,用空格显示 j 变量。
  • 现在在第二个嵌套的“for”中,更改第一个嵌套“for”的外部“for”条件。用 2 初始化它并循环直到 i<= 行。
  • 内循环迭代直到到达 i。然后在控制台上显示消息,与内 for 主体外部第一个嵌套“for”的内循环打印行空间相同。

列直角三角形中重复的数字模式程序:

每行重置计数器会使数字重复:

控制台输出显示一个直角三角形,每行数字都从 1 开始。

public class Number_pattern  {  
	public static void main(String args[])   
	{   
		int i, j,number, n=7;   
	for(i=0; i<n; i++)  
	{   
		number=1;   
		for(j=0; j<=i; j++)  
		{   
			System.out.print(number+ " ");   
			number++; 
		}   
		System.out.println();   
	} 
  } 
}

Code 解释:

  • 在示例代码中,声明 内部,int j, 整数ber 和 int n。
  • 然后用您想要的行数的值初始化 n,这里是 7。
  • 在外部“for”中,从值 0 开始循环并迭代直到达到 n。
  • 您可以在循环内部或外部初始化数字。
  • 在内部的 for 中,迭代直到 j 小于或等于 i 达到。并用空格显示数字。
  • 在内部“for”语句的主体之外,打印行间距。
  • 内部“for”循环迭代,直到其条件变为假。当此条件变为假时,外部循环再次递增并执行内部“for”,直到条件变为假。
  • 该过程不断重复,直到外循环变为错误。

当整数种子被强制转换为字符时,同一个框架会打印字母。

角色模式程序 Java

字符模式由英文字母组成。我们可以制作出炫酷的字符模式程序。 Java 下面将讨论其中几个例子。

字符半金字塔图案程序:

将整数类型的种子值强制转换为字符类型会打印出以下字母:

控制台输出显示一个由大写字母 A 到 F 组成的半金字塔。

public class Character_p{
    public static void main(String[] args){
        int alphabet = 65;
        for (int i = 0; i <= 5; i++){
            for (int j = 0; j <= i; j++)
            {   
				System.out.print((char) alphabet + " ");}
				alphabet++;
				System.out.println();
			}
		}
}

Code 解释:

  • 声明字母表并用值 65 初始化它。
  • 外层 for 循环从 0 开始并重复,直到 i 等于或小于 5。
  • 在 for 内部,循环从 0 开始并重复,直到 j 小于或等于 i。
  • 然后在输出屏幕上打印字符和空格。
  • 为了打印字符,我们将字母表从整数转换为字符。
  • 在其主体之外,增加字母表并在输出屏幕上打印该行。 (char) 将字母表值转换为字符。

金字塔/三角形图案 Java:

一个空格环将字母排列成金字塔形:

控制台输出显示一个居中的大写字母金字塔。

public class CharacterPattern  
{              
	public static void main(String[] args){  
		for (int i = 0; i <= 8; i++)   
		{  
			int alphabet_0 = 65;   
			for (int j = 8; j > i; j--)  
			{  
				System.out.print(" ");  
			}  
			for (int k = 0; k <= i; k++)  
			{  
				System.out.print((char) (alphabet_0 + k) + " ");  
			}  
		System.out.println();  
	}  
  }  
} 

Code 解释:

  • 在这个示例代码中,我们使用了三个“for”循环,一个是外循环,两个循环嵌套在外层“for”内。
  • 外部的“for”从 0 开始循环,直到值等于或小于 8。
  • 在外部“for”语句的主体内,我们用值 65 初始化整数类型的字母表变量,并将另一个“for”嵌套在其主体内。
  • 第一个内部“for”是外部“for”循环的反向,在其主体中,在控制台上打印空间。在其主体之外,还有另一个“for”。它像外循环一样迭代。
  • 在第二个内循环的主体中,通过键入字母 +k 来打印字符,并在控制台上打印带有空格的字符。在第二个内循环主体之外打印一行。

常见问题

从总行数开始倒数。左对齐的形状不需要行数,居中金字塔需要行数减去当前行索引,上面的示例使用了 2*(row-i)。

AI助手可以逐行比较预期和实际的控制台文本,并指出相差1的循环边界。在确认修复效果之前,请自行重新运行修正后的程序。

是的。 GitHub 副驾驶 根据一行描述生成图形。检查空格循环,因为生成的代码经常会将图形居中放置在偏离一列的位置。

在最内层循环中添加边界测试。仅在第一行、最后一行或第一列和最后一列打印符号;其他位置打印空格。

是的。一个递归方法打印一行,然后递增计数并调用自身,而另一个方法则管理序列。输出结果相同,但循环避免了额外的堆栈帧。

打印一个 n 行三角形大约需要 n²/2 次字符写入,因此时间复杂度为 O(n²)。输出本身呈二次方增长,所以没有算法能比它更快地打印出相同的图形。

65 是大写字母 A 的 ASCII 和 Unicode 代码点。将 65 强制转换为 char 类型得到 A,将 66 强制转换为 char 类型得到 B,因此递增 int 值并进行强制转换可以按顺序遍历字母表。

它们提供了循环控制、索引运算以及在纸上进行代码模拟的功能,无需任何库。一位候选人 traces 一行通常能正确理解嵌套迭代。

总结一下这篇文章: