Golang 打印直角三角形星型图案
在本教程中,我们将编写一个Go语言代码来打印一个直角三角形星型图案。我们将展示如何在Go语言中打印星型图案。
*
* *
* * *
* * * *
如何打印星星图案
上面展示了一个直角三角形星星图案,在该图案中,你可以看到星星随着行数的增加而增加。该图案按照以下方式进行:第一行有1颗星星,第二行有2颗星星,依此类推。
For loop
for [condition | ( init; condition; increment) | Range] {
statement(s);
}
示例1:Golang程序打印直角星形图案
步骤
- 第一步 − 导入fmt包。
-
第二步 − 开始函数 main() 。
-
第三步 − 声明并初始化整数变量。
-
第四步 − 使用第一个循环来迭代从1到“行数”的行。
-
第五步 − 使用第二个循环来迭代从1到i的列,以打印星型图案。
-
第六步 − 打印完一行的所有列后,换行即打印一个新行。
示例
以下代码中演示了编译和执行打印直角三角形星图案的Golang程序 −
//GOLANG PROGRAM TO PRINT RIGHT ANGLED STAR PATTERN
package main
// fmt package provides the function to print anything
import "fmt"
// calling the main function
func main() {
// declaring variables with integer datatype to store respective values
// i and j are used to iterate through for loop
// row variable will contain the total number of rows that a star pattern should contain.
var i, j, row int
// assigning a value of 5 to the number of rows that the pattern should print.
// assuming that value to be 5
row = 5
// Printing the star pattern
fmt.Println("\nRight Angled Star Pattern")
// for loop to print the number of rows rows
for i = 1; i <= row; i++ {
// for loop to print the number of columns
for j = 1; j <= i; j++ {
// printing star(*) symbol using fmt.Print() function
fmt.Print("* ")
}
// printing a new line using fmt.Println() function
fmt.Println()
}
}
输出
Right Angled Star Pattern
*
* *
* * *
* * * *
* * * * *
代码描述
- 上面的代码首先导入了main包和fmt包,fmt包可以让我们在屏幕上打印任何内容。
-
然后开始main()函数。
-
声明并初始化数据类型int的变量i、j和row。
-
让我们将行数设置为5,也就是为了这个示例,让我们打印一个有5行的星星图案。
-
i和j用于迭代for循环。它们将选择相应的行和列来打印*字符。
-
为了打印这种类型的图案,我们需要在另一个for循环中使用嵌套的for循环。第一个for循环用于选择行,它从1迭代到row变量所包含的行数。
-
第二个for循环从j = 1开始,到当前行的值。当前行的值是变量i的值。
-
使用fmt.Print()函数在第二个for循环中打印*字符。
-
对于第一行,第二个for循环不会开始,只会打印一个*字符。
-
对于第二行,i = 2,这种情况下第二个for循环将从j = 1迭代到j = 2,以此类推,第二行将打印两个*字符。
-
以此类推,将打印出右三角形图案。
示例2: 使用递归打印Golang程序的右三角星星图案
步骤
-
步骤1 - 导入fmt包。
-
步骤2 - 定义一个printSpace()函数。
-
步骤3 - 定义一个printRow()函数来递归打印星星图案的行。
-
步骤4 - 定义一个Star()函数来递归打印新行。
-
步骤5 - 声明并初始化整数变量。
-
步骤6 - 调用printRow()函数。
示例
//GOLANG PROGRAM TO PRINT RIGHT ANGLED STAR PATTERN using recursion
package main
// fmt package provides the function to print anything
import "fmt"
// defining printRow() function
func printRow(number int) {
// selecting rows
if number > 0 {
// calling the printRow() function recusrsively
printRow(number - 1)
// printing the star character
fmt.Printf("*")
}
}
func star(number int) {
if number > 0 {
// calling the star function recursively
star(number - 1)
}
// calling the printRow() function
printRow(number)
// printing new line
fmt.Println()
}
// calling the main function
func main() {
// declaring variable row
var row int = 7
// calling the star() function
star(row)
}
输出
*
**
***
****
*****
******
*******
代码描述
-
在以上代码中,我们首先导入了主包和 fmt 包,fmt 包允许我们在屏幕上打印任何东西。
-
创建了两个函数,分别命名为 printRow() 和 star() 。
-
printRow() 函数将根据选择的行数打印星号字符。
-
star() 函数将打印换行符,并调用 printRow() 函数以在选择的行中打印星号。
-
然后开始 main() 函数。
-
初始化一个名为 row 的 int 数据类型变量,并将要打印星号图案的行数存储在其中。
-
调用 star() 函数,并将 row 变量作为参数传递给它。
结论
我们已成功编译和执行了一个 Go 语言程序,用于打印一个直角星号图案。
为了打印这个星号图案,我们在这里使用了递归,递归调用了两个函数。