swift 笔记2

swift交流群:342581988,欢迎加入!

今天真郁闷啊,把mac升级到10.10了,现在好了,以前的程序都跑不了了,哎,不说了,让我郁闷会再。

说说条件判断吧,其实这些基本语法大家都知道肯定差不多,好吧,我就自己写写看吧。

上代码

let individualScores = [78,32,32,53,23]
var teamScore = 0
for score in individualScore{
     if score > 50{
        teamScore += 3
     }else{
        teamScore += 1
     }
}
teamScore

这个其实和以前的oc差不多了,我想大家都注意到了,就是这个Swift把以前用圆弧括号的地方全部去掉,把分号也去掉,大概就是这样子

在这里,要说说这个if判断语句,这个if后面的条件必须是个Boolean表达式,换句话说,如果上面这样写

if score{
   ...
}
那就是错的了

因为score是一个非Boolean值,这个在以前都是会自动与0相比较,非零值就会执行if后面语句。

这个地方if和let可以一起使用,let修饰变量时可选的,可以是一个值,也可以是nil,在类型后面加一个?表示他是可选的。

let v : int;已分配内存;

let v : int ? 还没分配内存

下面if里面用来判断optionName是否存在。

var optionString:String? = "Hello"
optionString == nil

var optionName: String ?= "John Appleseed"
var greeting = "Hello!"
if let name = optionName{
    greeting = "Hello, \(name)"
}

如果上面optionName = nil;那么结果将会不一样,会执行你后面else部分。

下面说说switch吧,这个我也还没搞太懂,所以大家一定要拍砖

这个switch支持任何数据 的比较操作,不仅仅是整形之类的,

let vegetable  = "red pepper"
switch vegetable {
     case "celery":
           let vegetableComment = "Add some raisins and make ants on a log."
    case "cucumber","watercress":
          let vegetableComment = "That would make a good team sandwich."
    case let x where x.hasSuffix("pepper"):
          let vegetableComment = "Is it a spicy \(x)?"
    default:
          let vegetableComment = "Everything tastes good in soup."
 

}

这个地方后面的default是不能少的,不然就会报错,不过这个地方有点变化的是,break不见了,对的,break不要了。

再说说for-in迭代循环吧

let interestingNumbers = [
    "Prime": [2, 3, 5, 7, 11, 13],
    "Fibonacci": [1, 1, 2, 3, 5, 8],
    "Square": [1, 4, 9, 16, 25],
]
var largest = 0
for (kind, numbers) in interestingNumbers {
    for number in numbers {
        if number > largest {
            largest = number
        }
    }
}
largest

其实这个没什么可说的了,看看就行了,

然后在看看while和do...while吧

var n = 2;
while n < 100{
      n = n * 2
}
n

var m = 2
do{
      m = m * 2
}while m < 100
m

注意确保循环进行至少一次


好吧,再写最后一个,应该算是一种新的写法吧

var firstForLoop = 0
for i in 0..3{
    firstForLoop += i
}
firstForLoop

var secondForLoop = 0
for var i = 0;i < 3; ++i{
      secondForLoop += 1
}
secondForLoop

..代表值递增,貌似包括端点值。


好吧,今天就写这点吧,感觉好慢啊,以后不能这样写了,必须 加速了,捡重点写点吧。










  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值