流程控制 Control Flow - for-in

流程控制 Control Flow - for-in

  • (1)if和switch來建立條件判斷式
  • (2)使用for-in, while, 和repeat-while來建立迴圈
  • 條件判斷式和迴圈中的小括號()是可以省略的
  • 實作範圍(body)的大括號{}不可以省略

let individualScores = [75, 43, 103, 87, 12]
var teamScore = 0

//以for-in迴圈列出陣列
for score in individualScores
{
    if score > 50   
    {               
        teamScore += 3
        print("236行,teamScore:\(teamScore)")
    }
    else
    {
        teamScore += 1
        print("242行,teamScore: \(teamScore)")
    }
}
print("團體分數的加總:\(teamScore)")

以for-in迴圈列出陣列的索引值及元素值

eamScore = 0   
for (index,score) in individualScores.enumerated()  
//[(0,75), (1,43), (2,103), (3,87), (4,12)]
{
    if score > 50   
    {               
        teamScore += 3
    }
    else
    {
        teamScore += 1
    }
    print("第\(index+1)次團體分數的加總:\(teamScore)")
}
print("團體分數的加總:\(teamScore)")

以for-in迴圈”反向”列出陣列


for score in individualScores.reversed() 
//[75,43,103,87,12]的反轉
{
    if score > 50   
    {               
        teamScore += 3
        print("\(score)-團體分數的加總:\(teamScore)")
    }
    else
    {
        teamScore += 1
        print("\(score)-團體分數的加總:\(teamScore)")
    }
}
print("團體分數的加總:\(teamScore)")

以for-in迴圈”反向”列出陣列,加序列

for (index,score) in individualScores.reversed().enumerated() 
//[75,43,103,87,12]->[12,87,103,43,75]->[(0,12),(1,87),(2,103),(3,43),(4,75)]
{
    if score > 50   
    {               
        teamScore += 3
        print("第\(index)\(score)-團體分數的加總:\(teamScore)")
    }
    else
    {
        teamScore += 1
        print("第\(index)\(score)-團體分數的加總:\(teamScore)")
    }
}
print("團體分數的加總:\(teamScore)")

迴圈正轉(每次加一)包含上標

for i in 0...9
{
    print("迴圈正轉(每次加一)包含上標:\(i)")
}

// 結果:
迴圈正轉(每次加一)包含上標:0
迴圈正轉(每次加一)包含上標:1
迴圈正轉(每次加一)包含上標:2
迴圈正轉(每次加一)包含上標:3
迴圈正轉(每次加一)包含上標:4
迴圈正轉(每次加一)包含上標:5
迴圈正轉(每次加一)包含上標:6
迴圈正轉(每次加一)包含上標:7
迴圈正轉(每次加一)包含上標:8
迴圈正轉(每次加一)包含上標:9

迴圈正轉(每次加一)不含上標


for i in 0..<9
{
    print("迴圈正轉(每次加一)不含上標:\(i)")
}

// 結果:
迴圈正轉(每次加一)不含上標:0
迴圈正轉(每次加一)不含上標:1
迴圈正轉(每次加一)不含上標:2
迴圈正轉(每次加一)不含上標:3
迴圈正轉(每次加一)不含上標:4
迴圈正轉(每次加一)不含上標:5
迴圈正轉(每次加一)不含上標:6
迴圈正轉(每次加一)不含上標:7
迴圈正轉(每次加一)不含上標:8

迴圈逆轉(每次減一)包含上標

for i in (0...9).reversed()
{
    print("迴圈逆轉(每次減一)包含上標:\(i)")
}

//結果:
迴圈逆轉(每次減一)包含上標:9
迴圈逆轉(每次減一)包含上標:8
迴圈逆轉(每次減一)包含上標:7
迴圈逆轉(每次減一)包含上標:6
迴圈逆轉(每次減一)包含上標:5
迴圈逆轉(每次減一)包含上標:4
迴圈逆轉(每次減一)包含上標:3
迴圈逆轉(每次減一)包含上標:2
迴圈逆轉(每次減一)包含上標:1
迴圈逆轉(每次減一)包含上標:0
````

## 迴圈逆轉(每次減一)不含上標

```swift
for i in (0..<9).reversed()
{
    print("迴圈逆轉(每次減一)不含上標:\(i)")
}

// 結果:
迴圈逆轉(每次減一)不含上標:8
迴圈逆轉(每次減一)不含上標:7
迴圈逆轉(每次減一)不含上標:6
迴圈逆轉(每次減一)不含上標:5
迴圈逆轉(每次減一)不含上標:4
迴圈逆轉(每次減一)不含上標:3
迴圈逆轉(每次減一)不含上標:2
迴圈逆轉(每次減一)不含上標:1
迴圈逆轉(每次減一)不含上標:0

````

## 迴圈正轉(每次加三)包含上標

```swift
for i in stride(from: 0, through: 9, by: 3)
{
    print("迴圈正轉(每次加三)包含上標:\(i)")
}

//結果:
迴圈正轉(每次加三)包含上標:0
迴圈正轉(每次加三)包含上標:3
迴圈正轉(每次加三)包含上標:6
迴圈正轉(每次加三)包含上標:9

迴圈正轉(每次加三)不含上標

for i in stride(from: 0, to: 9, by: 3)
{
    print("迴圈正轉(每次加三)不含上標:\(i)")
}

// 結果:
迴圈正轉(每次加三)不含上標:0
迴圈正轉(每次加三)不含上標:3
迴圈正轉(每次加三)不含上標:6

迴圈逆轉(每次減三)包含上標

for i in stride(from: 9, through: 0, by: -3)
{
    print("迴圈逆轉(每次減三)包含上標:\(i)")
}

// 結果:
迴圈逆轉(每次減三)包含上標:9
迴圈逆轉(每次減三)包含上標:6
迴圈逆轉(每次減三)包含上標:3
迴圈逆轉(每次減三)包含上標:0

迴圈逆轉(每次減三)不含上標

for i in stride(from: 9, to: 0, by: -3)
{
    print("迴圈逆轉(每次減三)不含上標:\(i)")
}

//結果:
迴圈逆轉(每次減三)不含上標:9
迴圈逆轉(每次減三)不含上標:6
迴圈逆轉(每次減三)不含上標:3