#5 定義 function,印出讓自己一秒落淚的情歌歌詞

題目定義 function,印出讓自己一秒落淚的情歌歌詞

需求

  1. 找一首自己喜歡,讓自己一秒落淚的情歌歌詞,利用 print 將歌詞印出。
  2. 找出重覆的段落,將它定義成無參數的 function,讓自己不用輸入重覆的歌詞。
  3. 深情改編版: 定義有參數的 function,可傳入字串修改歌詞。

最近滑到一則抖音,看到截圖
心裡想說哭也是一種創作?
看到後面發現有句歌詞還不錯

還記~得你答應過我
不會讓我把你找不見

找一下魔鏡歌詞網,原來是刀郎的歌曲
剛好也還蠻喜歡刀郎的歌
就決定採用這首歌的歌詞
完整內容如下

[西海情歌]
作詞:刀郎
作曲:刀郎
編曲:刀郎

自你離開以後 從此就丟了溫柔
等待在這雪山路漫長 聽寒風呼嘯依舊
一眼望不到邊 風似刀割我的臉
等不到西海天際蔚藍 無言這蒼茫的高原

還記得你答應過我不會讓我把你找不見
可你跟隨那南歸的候鳥飛得那麼遠
愛像風箏斷了線 拉不住你許下的諾言

我在苦苦等待雪山之巔溫暖的春天
等待高原冰雪融化之後歸來的孤雁
愛再難以續情緣 回不到我們的從前

觀察歌曲演唱順序的結構
可以區分成三段,且內容有重複可共用
1 + 2 + 3
2 + 3
3

處理順序

1. 找出重覆的段落定義為 func

func lyrics1() {
print("自你離開以後~")
print("~~~~")
print("從此就丟了溫~柔~")
print("~~~~")
print("等待~在這")
print("雪~山~路~漫長")
print("聽寒風呼嘯依~舊~")
print("~~~~")
}

func lyrics2() {
print("一眼望不到邊~")
print("~~~~")
print("風似刀割我的~臉~")
print("~~~~")
print("等不~到西海~")
print("天~際~蔚藍")
print("無言這蒼茫的高原~")
print("~~~~")
}

func lyrics3() {
print("還記~得你答應過我")
print("不會讓我把你找不見")
print("可你跟隨那南歸的候鳥")
print("飛得那麼遠")
print("愛像風箏斷了線")
print("拉不住~你許下的")
print("諾~~言~~~~")
print("我在苦苦等待")
print("雪山之巔溫暖的春天")
print("等待高原冰雪融化之後")
print("歸來的孤雁")
print("愛再難以續情緣")
print("回不到~我們的~從~前")
}

2. 定義有參數的 function,傳入字串修改演唱歌手

隔壁棚是看到喜歡就直接”拿來用”的大國
這首歌就被降央卓瑪給唱紅,還要收費
然後就被刀郎告上法院
所以目前可以找得到刀郎版與降央卓瑪版的影音

    func singer(_singer: String) {
print("[歌名]:西海情歌")
print("[作詞]:刀郎 \n[作曲]:刀郎 \n[編曲]:刀郎")
print("[演唱者]:\(_singer)")
}

3. 定義有參數的 function,傳入字串修改段落空幾行

    func space(_ lineNum: Int) {
print(String.init(repeating: "\n", count: lineNum))
}

4. 執行的順序

    override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.

singer(_singer: "刀郎")
space(1)
mark()
section1()
space(2)
section2()
space(2)
section3()
mark()
}

func section1() {
lyrics1()
section2()
}

func section2() {
lyrics2()
section3()
}

func section3() {
lyrics3()
}

5. print

--

--