第一個(gè)Swift程序

第一個(gè)Swift程序

print("Hello, world!")
//默認(rèn)情況下printf()函數(shù)輸出后會(huì)自動(dòng)換行,如果不希望換行,可以通過指定terminator參數(shù)設(shè)定自己的是否換行
print("Hello, world!",terminator: "")

變量和常量

let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."http://轉(zhuǎn)譯字符用法
let fruitSummary = "I have \(apples + oranges) pieces of fruit."

元組

用一個(gè)變量或一個(gè)常量保存多項(xiàng)信息

let stu: (id: Int, name: String,gender: Bool,age: Int) = (1001,"王大錘",true,23
)
let (_,j, _, k) = stu //下劃線表示不要()省略和忽略元組的第一項(xiàng)和第三項(xiàng)
//用元組交換兩個(gè)變量的值
var x = 5 , y = 10
(x,y) = (y,x)

運(yùn)算符

// 算數(shù)運(yùn)算符 + - *    / %
//關(guān)系運(yùn)算符 == != > >= < <=
//短路運(yùn)算符 && ||
字符串的連接
var string1 = "hello"
var string2 = "world"
string1 = string1 + " " + string2
三元條件運(yùn)算符
//let a = 5 , b = 10
//let c = a < b ? a : b

分支結(jié)構(gòu)

游戲舉例說明switch case

func name(a:Int)->String{
    var msg: String
    
    switch a{
        
    case 1:
        msg="石頭"
    case 2:
        msg="剪刀"
    case 3:
        msg="布"
        
    default:
        msg="輸入錯(cuò)誤"
    }
    return msg
}
func compare(a:Int,b:Int)->(String,Int,Int){
    var msg1: String
    var humanWin: Int = 0
    var win = 0
    if a==b{
        msg1="平局"
        win = 0
        humanWin = 0
    }
    else if  a==1&&b==2 || a==2&&b==3 || a==3&&b==1{
        msg1 = "你贏了"
        win = 0
        humanWin = 1
    }
    else{
        msg1 = "電腦贏了"
        win = 1
        humanWin = 0
    }
    return (msg1,humanWin,win)
    
}

if else 說明

//計(jì)算某年的某個(gè)月有多少天
//
print("請(qǐng)輸入年份:",terminator: " ")

let year = inputInt()
print("請(qǐng)輸入月份",terminator: " ")
let month = inputInt()
let day: Int
if year > 0 && month>=1 && month<=12{
    if month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 {
        day = 31
    }
    else if month != 2{
        day = 30
    }
//    else if year % 4 == 0 && year % 100 != 0 || year % 400 == 0 {
//        day = 29
//    }
//    else {
//        day = 28
//    }
    else {day = year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ? 29 : 28}
    print("day=\(day)")
}
else{
    print("輸入錯(cuò)誤")
}

循環(huán)結(jié)構(gòu)

while 循環(huán)--有可能一次都不執(zhí)行

var i = 0
while i < 10 {
    print("\(i)+\"\"Hello, World!")
    i += 1
}

repeat while 循環(huán)自少要執(zhí)行一次循環(huán)體內(nèi)容

var i = 1
repeat {
    print("\(i).hello,world")
 i += 1
}while i <= 10

for 循環(huán)

for _ in 1..<10{//_ 下劃線表示實(shí)參可以省略
    print("hello,world")
}
for i in 1...10{
    print("\(i).hello,world")
}

數(shù)組

//1.創(chuàng)建一個(gè)空數(shù)組
var array1 = [String]()
var array2:[Int] = []
var array3 = ["hello","world"]
var array4 = [Int](count: 100, repeatedValue: 1)
//修改元素
array3[1...1]=["www"]
print(array3)
//2.向數(shù)組中添加元素
array1.append("strawberry")//append追加 insert 插入
array1.append("pear")
array1 += ["pear"]
array1.insert("waxberry", atIndex: 0)
array1.insert("watermelon", atIndex: 2)
array1.insert("lemon", atIndex: array1.count)
print(array1)
//3.從數(shù)組中刪除元素全是 .remove(xxxx)
array1.removeAll() //元素全部刪除完,并回收空間
print(array1)
array1.removeAll(keepCapacity: true)//true只刪除元素不會(huì)刪除空間
array1.removeAtIndex(3)//
array1.removeFirst(100) //刪除前100個(gè)元素
array1.removeRange(<#T##subRange: Range<Int>##Range<Int>#>)//刪除的范圍
//4.數(shù)組的復(fù)制
var array1 = ["hello","world"]
var array2 = array1
    array2[0] = "aaaaaa"
//第二種寫法
var array3 = array1[1..<array3.count]
//5.數(shù)組的元素合并成新數(shù)組(數(shù)組的+運(yùn)算)
var array1
var array2
var array3 = array1 + array2
//6.獲取數(shù)組元素的個(gè)數(shù)
var array1 = ["hello","world"]
print(array1.count)
//7.對(duì)數(shù)組中的元素進(jìn)行遍歷
for index in 0..<array3.count{
    //[]是對(duì)數(shù)組進(jìn)行的下表運(yùn)算(取出指定位置的元素)
    print(array3[index])
    if index == 1{
        array3[index] = "hhh"
    }
}
print(array3)
//只讀循環(huán),在循環(huán)中不能修改數(shù)組中的元素
for str in array3{
    print(str)
}

小游戲總結(jié)

分支加循環(huán)的應(yīng)用:

猜值游戲

var thyAnswer: Int
var counter = 0
let answer = Int(arc4random_uniform(100)) + 1
repeat {
    counter += 1
    print("請(qǐng)輸入你猜的數(shù)字:",terminator:"")
     thyAnswer = inputInt()
    if thyAnswer > answer{
        print("小一點(diǎn)")
    }
    else if thyAnswer < answer{
        print("大一點(diǎn)")
    }
    else {
        print("恭喜你,猜對(duì)了,你總共猜了\(counter)次")
    }
}while thyAnswer != answer
if counter > 7 {
    print("你的智商該充值")
}

for循環(huán)的應(yīng)用:

百錢買白雞游戲 ocr圖片識(shí)別軟件
GET: 窮舉法,窮盡所有可能性直到找到正確答案

for x in 0...20{
    for y in 0...33{
        let   z = 100 - x - y
            if   5 * x + 3 * y + z / 3 == 100 && z % 3 == 0{
                print("公雞:\(x),母雞:\(y),小雞:\(z)")
        }
    }
}

分魚游戲

循環(huán)分支語(yǔ)句的練習(xí)

var total = 1
var bool  = true
while bool{
    // 用當(dāng)次循環(huán)時(shí)total的值作為魚的總數(shù)
    var fish = total
    // 假設(shè)魚的數(shù)量足夠五個(gè)人分
    var isEnough = true
    //通過循環(huán)模擬五個(gè)人分魚的過程
    for _ in 1...5 {
//        檢查剩下的與是否夠分
        if (fish - 1) % 5 == 0 {
            fish = (fish - 1) / 5 * 4
        }
        else{
//            如果魚不夠分就將isEnough賦值為false并提前結(jié)束分魚的循環(huán)
            isEnough = false
            bool = true
        }
    }
    if isEnough{
        print(total)
        bool = false
    }
    total += 1
}

數(shù)組的應(yīng)用:提高代碼質(zhì)量

func roll() ->Int{
    return  Int(arc4random_uniform(6))+1
}

//定義一個(gè)放整數(shù)的數(shù)組(6個(gè)元素,初始值都為0)
var f = [Int](count: 11, repeatedValue: 0)//var f: [Int]
for _ in 0..<600000{
    let face = roll() + roll()
    f[face - 2] += 1
}
for i in 0..<f.count{
    print("\(i+2)點(diǎn)搖出了\(f[i])次")
}

用圖片做出動(dòng)畫效果

//核心代碼:
var imageView: UIImageView!
 let screenHeight = self.view.bounds.size.height

        imageView = UIImageView(frame: CGRectMake(0, screenHeight / 2 - 50, 75, 100))
        // imageView.backgroundColor = UIColor.clearColor()
        // imageView.image = UIImage(named: "runner0")
        imageView.animationImages = [
            UIImage(named: "runner0")!,
            UIImage(named: "runner1")!,
            UIImage(named: "runner2")!,
            UIImage(named: "runner3")!,
            UIImage(named: "runner4")!,
            UIImage(named: "runner5")!
        ]
        imageView.animationDuration = 0.6
        self.view.addSubview(imageView)
        imageView.startAnimating()
        timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: "runForward", userInfo: nil, repeats: true)
imageView.animationImages = []如果用了這句話那么下面那句話也得用
imageView.startAnimating()//不要這句話程序會(huì)報(bào)錯(cuò)


    func runForward() {
        var frame = imageView.frame//圖片的另一個(gè)屬性
        frame.origin.x += 12
        imageView.frame = frame//這句話必須寫不然圖片不會(huì)移動(dòng)的
        if frame.origin.x > self.view.bounds.size.width {
            frame.origin.x = -75
            imageView.frame = frame
        }
    }

剪刀石頭布用case 語(yǔ)句寫法 加 元組


//剪刀1石頭2布3

//repeat{
//    let machine = Int(arc4random_uniform(3)) + 1
//    print("請(qǐng)出拳:",terminator:" ")
//    let me = inputInt()
//    if me > 0 && me < 4{
//        switch (machine,me){
//        case (1,1),(2,2),(3,3):
//            print("平局")
//        case (1,2),(2,3),(3,1):
//            print("ren贏")
//        default:
//            print("ren輸")
//        }
//    }
//else{
//        print("輸入錯(cuò)誤")
//    }
//}while true
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容