作業#33 畫星星蘋果 — nested loop(巢狀迴圈) 練習

原本很早就想要做這個作業了,但是一直有比較重要的作業要先做。所以到現在才把他做完!

剛好最近有學習AutoLayout,就加入一下AutoLayout進來!

首先加入UI元件跟IBOutlet

加入Func

我總共做了4個形狀跟一個99乘法表

直角三角形、金字塔

直角三角形跟金字塔型其實兩個的程式碼是差不多的我只加了置中就讓金字塔變得完美!

應該算是小小的偷吃步?

正方形

func square(){var conntent = ""let num = Int(frogSlider.value)valueLabel.text = "\(num)"//        跑1...Slider的值次數for i in 1...num{//        跑1...Slider的值次數for j in 1...num{//                如果i跟j的數字一樣時emoji換成🍄if i == j {conntent = conntent + "🍄"}else{conntent = conntent + "🐸"}}conntent = conntent + "\n"}frogLabel.text = conntent}

菱形

菱形我覺得是最難的想了很久才寫出來。。。

九九乘法表

我的作法是做成類似這種表格式的99乘法表

func ninenine(){let  number = Int(frogSlider.value)frogSlider.maximumValue = 10//        儲存數字var numberArray = [String]()//       讓回圈跑1...number次for i in 1...number{//            讓裡面回圈跑1...9次for j in 1...9{//                設定一個num是裝乘出來的數字let num = i * j//                如果數字大於10就會.append("\(num) ")if num >= 10 {numberArray.append("\(num) ")//                其他間隔就會大一點.append("\(num)  \t")}else{numberArray.append("\(num)  \t")}//                如果算完一圈就會換行if j == 9{numberArray.append("\n")}}}//        建立一個把Array裡的值取出來的常數let takeOutArray = numberArray.joined(separator: "")//        顯示在Label裡frogLabel.text = "\(takeOutArray)"valueLabel.text = "\(number)"}

更新UpdateUI

這就很簡單!在變換segment的時候就會重新整理

func updateUI(){frogLabel.frame = CGRect(x: 12, y: 390, width: 350, height: 330)frogLabel.text = ""valueLabel.text = "0"frogSlider.setValue(0, animated: true)}

加入@IBActon跟ViewDidLoad

就是把func帶進去就好!

AutoLatout

其實我還對AutoLatout不太熟悉所以我就把我想要的規則定進去而已最後再按左上角的讓他幫我加入少加的規則。在看出來的是不是我想要的如果不是在修改細節。我先拿Label當例子

成品展示

做完這次的腦力激盪for-inLoop真的是了解大概9成使用方法了!基礎的現在都比較了解了!希望進階的也可以趕快學會。。。

參考作品

--

--