Swift程式列印空心直角三角形星號圖案


本教程將討論如何編寫Swift程式來列印空心直角三角形星號圖案。

星號圖案是由“*”組成的序列,用於建立不同的圖案或形狀,例如金字塔、矩形、十字架等。這些星號圖案通常用於理解或練習程式流程控制,它們也有利於邏輯思維訓練。

要建立一個空心直角三角形星號圖案,我們可以使用以下任何方法:

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

以下是演示:

輸入

假設我們的輸入是:

Num = 5

輸出

期望的輸出是:

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

演算法

以下是演算法:

步驟1 - 宣告一個變數來儲存三角形的長度。

步驟2 - 執行巢狀for迴圈來列印圖案中的空格和“*”。此處,外層for迴圈處理行,內層for迴圈處理列。

步驟3 - 在巢狀for迴圈內,如果((j == 1) || (j == i) || (i == num))為真,則列印“*”。否則列印空格。

步驟4 - 列印輸出

方法1 - 使用巢狀for迴圈

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

示例

以下程式演示瞭如何使用巢狀for迴圈列印空心直角三角形星號圖案。

import Foundation
import Glibc
var num = 5
// Print rows
for i in 1...num{
   // Print columns
   for j in 1...i{
      // Print "*" in hollow right angle triangle
      if ((j == 1) || (j == i) || (i == num)){
         print("*", terminator: "")
      }
      else{
         print("", terminator: " ")
      }
   }
   // Print New line
   print("")
}

輸出

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

在上面的程式碼中,我們使用巢狀for迴圈來列印空心直角三角形星號圖案。最外層的for迴圈(從1到5)用於處理要列印的行數,每一行都以換行符開頭。巢狀的for迴圈處理列數。在這個巢狀迴圈中,我們使用以下三個條件來列印“*”:

  • if(j == 1) 用於列印第一列
  • if(j == i) 用於列印第二列
  • if(i == num) 用於列印最後一列

如果所有條件都不滿足,則列印空格。

方法2 - 使用stride函式

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

語法

以下是語法:

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

這裡:

from - 表示給定序列使用的起始值。

to - 表示限制給定序列的結束值

by - 表示每次迭代的步進量,正值表示向上迭代或增量,負值表示向下迭代或減量。

示例

以下程式演示瞭如何使用stride()函式列印空心直角三角形星號圖案。

import Foundation
import Glibc
 
var num = 10

// Print rows
for i in stride(from:1, to:num+1, by:1){
   // Print columns
   for j in stride(from:1, to:i+1, by:1){
      // Print "*" in hollow right angle triangle
      if ((j == 1) || (j == i) || (i == num)){
         print("*", terminator: "")
      }
      else{
         print("", terminator: " ")
      }
   }
   // Print New line
   print("")
}

輸出

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

在上面的程式碼中,我們在for迴圈中使用stride()函式來列印空心直角三角形圖案。

更新於:2022年12月13日

616 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.