Swift程式列印X星型圖案


本教程將討論如何編寫 Swift 程式來列印 X 星型圖案。星型圖案是由“*”組成的序列,用於開發不同的圖案或形狀,例如金字塔、矩形、十字架等。這些星型圖案通常用於理解或練習程式流程控制,它們也對邏輯思維很有幫助。

建立 X 星型圖案,我們可以使用以下任何一種方法:

  • 使用巢狀 for 迴圈
  • 使用 stride 函式

以下是演示:

輸入

假設我們的給定輸入是:

Num = 5

輸出

期望的輸出將是:

*       *
 *     * 
  *   *  
   * *   
    *    
   * *   
  *   *  
 *     * 
*       *

方法 1 - 使用巢狀 for 迴圈

我們可以使用巢狀 for 迴圈建立“*”或任何其他圖案的 X 形圖案。這裡每個 for 迴圈處理不同的任務,例如最外層的 for 迴圈用於新行,巢狀的 for 迴圈用於“*”等。

示例

下面的程式展示瞭如何使用巢狀 for 迴圈列印 X 星型圖案。

import Foundation
import Glibc
var num = 6
// Total number of row and column in the pattern
var n = num * 2 - 1
// Print rows
for i in 1...n{
   // Print "*" in X pattern
   for j in 1...n{
      // For first and second diagonal 
      if ((j == i) || (j == (n - i + 1))){
         print("*", terminator: "")
      }
      else{
         print("", terminator: " ")
      }
   } 
   // Print New line
   print("")
}

輸出

*         *
 *       * 
  *     *  
   *   *   
    * *    
     *     
    * *    
   *   *   
  *     *  
 *       * 
*         *

在上面的程式碼中,我們使用巢狀 for 迴圈來列印“*”的 X 形圖案。首先,我們使用:n = num * 2 - 1(因此行數 = 11,列數 = 11)確定要列印的行數和列數。現在,最外層的 for 迴圈(從 1 到 n)用於處理要列印的行總數,每一行都以換行符開頭。巢狀的 for 迴圈(從 1 到 n)用於處理空格和“*”。為了列印 X 十字圖案,我們使用以下條件,否則列印空格。

if(i==j) 用於列印第一條對角線。

if(j == (n - i + 1)) 用於列印第二條對角線。

方法 2 - 使用 stride 函式

Swift 提供了一個名為 stride() 的內建函式。stride() 函式用於以遞增或遞減的方式從一個值移動到另一個值。或者我們可以說 stride() 函式返回從起始值開始的序列,但不包括結束值,並且給定序列中的每個值都按給定量遞增。

語法

以下是語法:

stride(from:startValue, to: endValue, by:count)

這裡:

from − 代表給定序列的起始值。

to − 代表限制給定序列的結束值。

by − 代表每次迭代的步長,正值表示向上迭代或遞增,負值表示向下迭代或遞減。

示例

下面的程式展示瞭如何使用 stride() 函式列印 X 星型圖案。

import Foundation
import Glibc
var num = 3
// Total number of rows and columns in the pattern
var n = num * 2 + 1
// Print rows
for i in stride(from:2, to: n, by: 1){
   // Print "*" in X pattern
   for j in stride(from:1, to: n, by: 1){
      // For first and second diagonal 
      if ((j == i) || (j == (n - i + 1))){
         print("*", terminator: "")
      }
      else{
         print(terminator: " ")
      }
   }  
   // Add new line
   print("")
}

輸出

 *   *
  * * 
   *  
  * * 
 *   *

在上面的程式碼中,X 形圖案中要列印的行數和列數為

N = num * 2 + 1

現在我們使用帶有 stride() 函式的 for 迴圈來處理 X 形圖案的行,並且它還在每一行之後新增換行符。stride() 函式從 2 開始到 n,每次迭代 i 的值增加 1。在這個 for 迴圈中,我們使用巢狀 for 迴圈以及 stride 函式來列印“*”和空格。因此,巢狀的 stride 函式從 1 開始到 n,每次迭代 j 的值增加 1。眾所周知,X 形圖案由兩條對角線組成,因此要列印第一條對角線,我們使用 if(i == j) 條件;要列印第二條對角線,我們使用 if(j == (n - i + 1)) 條件。如果這兩個條件都不滿足,則列印空格。

更新於:2022年12月13日

瀏覽量:537

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告