通过前面几篇的学习,Swift的基础类型学习的差不多了,接下来就学习流程控制与条件语句和运算符
一、运算符
//: Playground - noun: a place where people can play
import UIKit
//运算符Swift学习,+ - * / % > < += -= || && | & 注意不同类型需要显示强制转换
var x = 10;
var y = 3;
var z = 0;
x/y
Double(x)/Double(y);
var xx = +x;
var yy = -y;
x += 9;
if x > y{
print("10 > 3");
}
var capacity = 30;
var volume = 50;
if x > y && capacity < volume{
print("Buy it");
}
if x < y || capacity > volume{
print("Buy it");
}else{
print("not buy it");
}
二、循环语句
循环语句有for、while、do-while
//: Playground - noun: a place where people can play
import UIKit
//循环语句有for、while、do-while
for index in -99...99{
index;
index*index;
}
var i = -99;
for ; i <= 99 ; {
i*i;
i++;
}
for var a = -6.28; a <= 6.28; a += 0.1 {
sin(a);
}
var ii = -99;
var step = 1;
for ; ii <= 99; ii += step{
ii * ii;
step *= 2;
}
var a = 10;
while a > 0{
a--;
}
var aWin = 0;
var bWin = 0;
var game = 0;
while aWin < 3 && bWin < 3{
game++;
let a = arc4random_uniform(6) + 1;
let b = arc4random_uniform(6) + 1;
print("a is \(a), b is \(b).", terminator:" ");
if a > b{
print("A win");
bWin = 0;
aWin++;
}else if a < b{
print("B win");
aWin = 0;
bWin++;
}else{
print("a == b");
aWin = 0;
bWin = 0;
}
}
let winner = aWin == 3 ? "A" : "B";
print("After \(game) games \(winner) Win")
print("");
var aaWin = false;
var bbWin = false;
var agame = 0;
repeat{
game++;
let a = arc4random_uniform(6) + 1;
let b = arc4random_uniform(6) + 1;
print("a is \(a), b is \(b).", terminator:" ");
if a > b{
aaWin = true;
}else if a < b{
bbWin = true;
}else{
print("a == b");
}
print("");
}while !aaWin && !bbWin;
let awinner = aaWin ? "A" : "B";
print("After \(awinner) Win")
print("");
while true{
let a = arc4random_uniform(6) + 1;
let b = arc4random_uniform(6) + 1;
print("a is \(a), b is \(b).");
if a == b{
print("a == b");
continue;
}
let winner = a > b ? "A" : "B";
print("\(winner) win!");
break;
}
三、条件语句
switch if-else
//: Playground - noun: a place where people can play
import UIKit
//条件语句
var count = 15
if a > 20{
print(\(a) > 20)
}else{
print(\(a) <= 20)
}
let rating = "A";
switch rating{
case "a", "A":
print("Great");
case "b", "B":
print("Just so-so");
case "c", "C":
print("It's Bad");
default:
print("Error")
}
let score = 100;
switch score{
case 0:
print("You got a egg")
case 1..<60:
print("You faild")
case 60:
print("Just passed")
case 61..<80:
print("Just so-so")
case 80..<90:
print("Good")
case 90..<100:
print("Great")
case 100:
print("Perfect!")
default:
print("Error score")
}
print("")
//x^4 - y^2 = 15* x * y;
findAnswer:for m in 1...300{
for n in i...300{
if m*m*m*m - n*n == 15*m*n{
print("m = \(m), n = \(n), left = \(m*m*m*m - n*n), right = \(15*m*n)");
break findAnswer;
}
}
}
//where语句的使用
let point = (3, 5);
switch point{
case let(x, y) where x == y:
print("It's on the line x == y!");
case let(x, y) where x == -y:
print("It's on the line x == -y!");
case let(x, y):
print("It's just an ordinary point.");
print("The point is \(x), \(y)");
}
let age = 19;
switch age{
case 10...19:
print("You're a teenager.");
default:
print("You're not a teenager.");
}
if case 10...19 = age{
print("You're a teenager.");
}
if case 10...19 = age where age >= 18{
print("You're a teenager and in a college.");
}
let vector = (4, 0);
if case (let x, 0) = vector where x > 2 && x < 5{
print("It's the vector");
}