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(" ")
}
輸出
******* * * * * * * * * * * * * * * ******* * * * * * * * * * * * * * * *******
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP