//
// main.swift
// 3Swift_运算符
//
import Foundation
//+ - * / % ++ -- = += -= == > < >= <= != || &&
//% ++ 支持浮点数
//swift 禁止连续赋值
//
// || && 两遍必须是布尔值
/*
区间运算符 整数
(a...b) 闭区间
(1…3) 1 ,2 ,3
半闭区间 a..<b 1..<3 -> 1,2 (beta 1 不需要加< 后面beta 需要加)
*/
//1.//swift 和C语言的不同
func test1() {
//% ++ 支持浮点数
var a:Int = 3
let b:Int = 5
let c = b%4
print("c:\(c)")
let d = 5.0
//% 两侧可以是浮点数
let c2 = d%2.4
print(c2)
var x:Int = 2
let newX = x++
print(newX)
print(x)
//小数也可以自增自减 1
var y:Double = 3.14
let y2 = y++
print("y2->\(y2) y->\(y)")
}
test1()
//2.区间运算符
/*
区间运算符 整数
(a...b) 闭区间
(1…3) 1 ,2 ,3 ->
半闭区间 a..<b 1..<3 -> 1,2
*/
func test2() {
//可以用于循环 和 switch
//循环 10次 i 分别是1 2 3 。。。 10
for i in (1...10) {//for 可以不写() 但是{}必须写
//快速枚举 i 不需要给类型 根据后面的区间 类型推断
print("i = \(i)")
}
//循环4次 1 2 3 4
for i in (1..<5) {
print(i)
}
//当我们只是为了循环10次 不需要使用变量i 那么 可以不写 i 用'_' 通配符
for _ in (1...10) {
print("xiaohong")
}
}
test2()
//
// main.swift
// 4Swift流程控制
//
import Foundation
//1.if
func testIf() {
/*
if (表达式) { //括号()可以不写
表达式的值 必须是布尔值
}*/
let money = 100
//1.
if money > 50 {
print("为你亮灯哟")
}
//2.
if money > 50 {
print("为你亮灯哟")
}else {
print("等你赚够钱再来吧")
}
//3.
if money < 50 {
print("等你赚够钱再来吧")
}else if money >= 50 && money <= 100{
print("为你亮灯")
}else {
print("为你爆灯")
}
}
//testIf()
//2.switch
func testSwitch() {
//switch 后面的表达式 可以是任意类型
let c = "a"
switch c {
case "a":
print("a")//后面可以不加break swift 中执行完case后面的语句之后就会退出 switch -case结构
case "b":
print("b")
default: //最后必须要加default
print("other")
}
switch c {
case "a","A": //可以这样写
print("a")//后面可以不加break swift 中执行完case后面的语句之后就会退出 switch -case结构
case "b":
print("b")
default: //最后必须要加default
print("other")
}
//还可以是浮点数
let f = 3.14
switch f {
case 1.1:
print("1.1")
case 3.14:
print("3.14")
default:
print("other")
}
//广义匹配
let num = 99
switch num {
case (1...50)://case 后面 可以写区间
print("1-50")
case (51...100):
print("51-100")
case (101...200):
print("101-200")
default:
print("other")
}
//还可以是元组
let point = (3,100)
switch point {
case (0,0):
print("原点")
case (1,1):
print("(1,1)")
case (2...10,2...10)://元组中可以写成区间
print("2-10,2-10")
case (_,100):// 表示 只需要匹配 第二个元素 第一个元素可以是任意的值
print("x轴")
default:
print("other")
}
//让 case 下面的语句继续向下执行
let n = 1
switch n {
case 0:
print("0")
fallthrough //表示继续向下执行 (遇到fallthrough 会继续执行下面的代码 而不会退出 switch-case)
case 1:
print("1")
fallthrough
case 2:
print("2")
fallthrough
case 3:
print("3")
fallthrough
default:
print("")
}
}
//testSwitch()
//3.循环
func testFor() {
//i++ i 和++ 中间不能有空格
//普通for
var sum = 0;
for var i = 1;i <= 10;i++ {
sum += i
}
print("sum = \(sum)")
//还可以用快速枚举 快速枚举可以遍历集合 和 区间
for k in (1...10) {//k 不需要定义
print("k = \(k)")
}
//遍历数组
for m in [1,2,3,4,5] {
print("m = \(m)")
}
//遍历字典
for point in ["one":1,"two":2] {
//遍历字典 point 得到是一个元组类型
//(one,1) (two,2)
print("point = \(point)")
}
for (x,y) in ["one":1,"two":2] {
//遍历字典 point 得到是一个元组类型
//(one,1) (two,2)
print("x = \(x) y = \(y)")
}
//遍历字符串
for c in "helloworld".characters {
print("c = \(c)")
}
/*
for ;; {
println("死循环")
}*/
for var i = 0;i < 10;i++ {
if i == 5 {
break//结束循环
}
print("i = \(i)")
}
for var i = 0;i < 10;i++ {
if i % 2==0 { //偶数
continue //结束本次循环继续下一次循环
}
print("i = \(i) 是奇数")
}
}
//testFor()
func testWhile() {
var i = 0
while i < 10 {//表达式需要是布尔值
print("i = \(i)")
i++
}
}
testWhile()