Swift程序打印8星图案
本教程将讨论如何编写Swift程序来创建8星图案。
星形图案是由“*”组成的序列,用于开发不同的图案或形状,例如金字塔、矩形、十字架等。这些星形图案通常用于理解或练习程序流程控制,它们也对逻辑思维很有帮助。
要创建8星图案,我们可以使用以下任何一种方法:
- 使用嵌套for循环
- 使用stride函数
以下是演示:
输入
假设我们的给定输入为:
Num = 5
输出
所需的输出将是:
*** * * * * * * *** * * * * * * ***
算法
以下是算法:
步骤1 - 声明一个名为rows的变量来存储列数。
步骤2 - 声明另一个变量来存储行数:
var val = row * 2 - 1
步骤3 - 运行从0到val的外部for循环。此循环处理行。
步骤4 - 检查(x==1 || x==row || x==val)是否为真。
如果条件为真,则运行第一个嵌套for循环(从1到row),遍历列。在嵌套for循环中,如果(y==1 || y==row)为真,则打印空格,否则打印“*”。
如果条件为假,则运行第二个嵌套for循环(从1到row),遍历列。在嵌套for循环中,如果(y==1 || y==row)为真,则打印“*”,否则打印空格。
步骤5 - 打印输出。
方法1 - 使用嵌套for循环
我们可以使用嵌套for循环创建“*”的8星图案或任何其他图案。这里每个for循环处理不同的任务,例如最外层的for循环用于新行等。
示例
以下程序展示了如何使用嵌套for循环打印8星图案。
var row = 10 var val = row * 2 - 1 for x in 1...val{ if(x==1 || x==row || x==val){ for y in 1...row{ if(y==1 || y==row){ print(" ", terminator:"") } else{ print("*", terminator:"") } } } else{ for y in 1...row{ if(y==1 || y==row){ print("*", terminator:"") } else{ print(" ", terminator: "") } } } print(" ") }
输出
******** * * * * * * * * * * * * * * * * ******** * * * * * * * * * * * * * * * * ********
方法2 - 使用Stride函数
Swift提供了一个名为stride()的内置函数。stride()函数用于以增量或减量从一个值移动到另一个值。或者我们可以说stride()函数返回从起始值开始的序列,但不包括结束值,并且给定序列中的每个值都以给定量步进。
语法
以下是语法:
stride(from:startValue, to: endValue, by:count)
这里,
from - 表示用于给定序列的起始值。
to - 表示限制给定序列的结束值
by - 表示每次迭代的步进量,这里正值表示向上迭代或增量,负值表示向下迭代或减量。
示例
以下程序展示了如何使用stride()函数打印8星图案。
import Swift import Foundation var row = 9 var k = row * 2 - 1 for i in stride(from:1, to:k+1, by:1){ if (i==1 || i==row || i==k){ for j in stride(from:1, to:row+1, by:1){ if (j==1 || j == row){ print(" ", terminator:"") } else{ print("*", terminator:"") } } } else{ for j in stride(from:1, to:row+1, by:1){ if (j==1||j==row){ print("*", terminator:"") } else{ print(" ", terminator: "") } } } print(" ") }
输出
******* * * * * * * * * * * * * * * ******* * * * * * * * * * * * * * * *******