swift语言笔记


1.Swift输出语句
print 不换行
println 换行

语法:print(内容)内容包括:常量(数值 字符(字符和字符串)  逻辑) 运算式 变量
举例:print(123)  print(1.23)    print(12.3)   print(-123)
        print(“a”)   print(“hello”)
        print(true)   print(false)
         print(1+2) print(1-3) print(1*3) print(1/3) print(1%3)(+-*/%)

2.Swift运算符
print(“a”+”b”)(输出ab,+是字符串的相连)

  (1)赋值:=
  (2)复合赋值:+=  -=  *=   /=  %= 
  (3)数学:+  -  *  /  %(求余数)
  (4)比较:>   >=  ,  <=  ==  !=
  (5)三目: ?:
  (6)范围:..<   ...
  (7)逻辑:&&  //  !

三目运算符举例:Print(1>2 ? 1 : 2)表示1大于2,如果为真就输出1,如果为假就输出2。

3.Swift变量和常量
变量的作用是在程序运行时临时保存一个量(数值 字符量 逻辑量)
要想使用变量就必须先定义它 必须赋过值 变量赋值不能超过它允许的范围

定义变量的语法:  var 变量的名字:数据类型=值
定义常量的语法:  let 常量的名字:数据类型=值
Swift的数据类型:
Int类型:int8(-128到127)  int16  int32  int64
Uint类型:Uint8  Uint16  Uint32  Uint64
浮点型: Float   Double
布尔类型:Bool
字符类型:Character
字符串类型:String
可选类型:Optional

举例:

(1)var a:Int8//定义一个整型变量a
       a=12    //赋值语句
       println(a)
(2)var a:Int8=12
       println(a)
(3)var b:Bool=true
     println(b)
(4)var ch:Character=”a”
     println(ch)
(5)var ch:String=”ahjkld”
     println(ch)

4.Swift的条件判断语句if语句

If 条件
{
  语句
}

举例(1):

     var a:int=12
      If a%2==0
     {
       Println(“\(a)是偶数!”)
     }

举例(2):

      var num:Int=12
      If num>0
      {
        Println(“”\(num)是正数)
      }
      If num<0
      {
        Println(“”\(num)是负数)
      }

5.Swift的条件判断语句if else语句

 if 条件
  {
     语句1
  }
  else
  {
     语句2
  }

举例(1):

      var num:Int=12
      If num>0
      {
        Println(“\(num)是正数”)
      }
      else
      {
        Println(“\(num)是负数”)
      }

举例(2):

       var num:Int=66
        If num<60
        {
           Println(“不及格”)
        }
        else if num<80
       {
           Println(“及格”)
       }
        else if num<90
        {
           Println(“优良”)
        }
        else 
       {
           Println(“优秀”)
        }

6.Swift的开关语句switch语句

Switch 值
{
 case 值1:
 语句1
 case 值2:
 语句2
 case 值3:
 语句3
 ...
 default
 语句
}

举例(1):

var num=5
switch num
{
 case 0:
   println(“\(num)是零”)
case 1:
   println(“\(num)是壹”)
case 2:
   println(“\(num)是贰”)
case 3:
   println(“\(num)是叁”)
case 4:
   println(“\(num)是肆”)
case 5:
   println(“\(num)是伍”)
case 6:
   println(“\(num)是陆”)
case 7:
   println(“\(num)是柒”)
case 8:
   println(“\(num)是捌”)
case 9:
   println(“\(num)是玖”)
default:
   println(“无法转换”)
 }

举例(2):

  var num=89
  switch num/10
 {
   case 0,1,2,3,4,5:
      Println(“\(num)是不及格”)
   case 6,7:
      Println(“\(num)是及格”)
   case 8:
      Println(“\(num)是优良”)
   case 9,10:
      Println(“\(num)是优秀”)
   default:
 println(“无效的分数!”)
 }

举例(3):

   var num=89
  switch num
 {
   case 0..<60:
      Println(“\(num)是不及格”)
   case 60..<80:
      Println(“\(num)是及格”)
   case 80..<90:
      Println(“\(num)是优良”)
   case 90...100:
      Println(“\(num)是优秀”)
   default:
 println(“无效的分数!”)
 }

7.Swift的循环语句for语句
举例(1):

for var i=10;i>=1;i--
{
  println(i)
}(输出10 9 8 7 6 5 4 3 2 1)

举例(2):

for a in 1...10(集合)
 {
  println(a)
 }(输出1到10)

举例(3):

var s=0
for var i=1;i<=100;i++
{
 s=s+i
}
println(s)
(从1加100输出5050)

8.Swift的循环语句while语句
不知道循环次数的循环用while语句

While 条件
{
 循环体
}

举例:

var s=0
var i=0
while s != 3003
{
  i++
  s+=i
}
Println(i)(输出77)

9.Swift的循环语句do while语句

do
{
循环体
}while 条件

举例:

var s=0
var i=0
do
{
  i++
  S+=i
}while s != 3003
println(i)(输出77)

10.Swift之函数

使用函数的两种情况:
1.在程序不同的地方出现了相同的代码,就应该把这个相同的代码做成函数
2.把大的项目拆分成几个小的模块
要使用函数,首先要声明函数

语法:
func 函数名称(参数的列表)->返回值(数据类型)
{
  函数要做的事情(语句)
}

**无参数列表也没有返回值的函数 **(其实就是给代码起个名 ;要使用这个代码,就可以通过名称去调用它)
举例(1):

println(“做一件事”)
println(“做另一件事”)
println(“做这个事”)
println(“做一件事”)
println(“做另一件事”)
println(“做这个事”)
println(“做一件事”)
println(“做另一件事”)
其中“println(“做一件事”)println(“做另一件事”)”都相同时,就用函数:
func f1()   //无参数列表也没有返回值的函数** **
{
  println(“做一件事”)
  println(“做另一件事”)
}
f1()
println(“做这个事”)
f1()
println(“做这个事”)
f1()

有一个参数有一个返回值的函数
举例(1):

func isPrime(n:Int)->Bool  //求素数
{
  var b:Bool=true
  for i in 2..<n
  {
if n%i==0
{
  b=false
  break
}
  }
  return b
}
println(isPrime(11)) 输出true

举例(2):

var c=0  //计数器
for i in 100...999  //产生所有的三位数
{
  if isprime (i)   //如果是素数
 {
   c++
  print(“\(i)\t”)  //显示出来
  if c%10==0  //如果每行是10个数
  {
    println()  //就换行
    }
  }
}(输出100到999的所有素数,且每行10个数)

有多个参数有一个返回值的函数
举例:

func add(var a:Int,var b:Int)
{
  return a+b
}
var a=1
var b=2
var s=add(a,b)
Println(s)

有多个参数有多个返回值的函数
举例:

func sum(var n:Int,b:Bool)->Int
{
  var s:Int
  if b==true
  {
    s=0
  }
  else
  {
    s=1
  }
  for i in 1...n  
  {
    if b==true
   {
     s+=i  //如果b为真就求和
   }
   else
  {
    s*=i  //如果b为假就求乘积
  }
 }
return s
}

11.Swift之数组
数组类型 [数据类型]
举例:var arr:[Int]=[1,2,3]
举例:

func sum(n:Int...)->Int  //动态数组
{
  var s=0
  for a in n
  {
    s+=a  //求和
  }
  return s
}
println(sum(1,2))(输出3)
println(sum(1,2,3)) (输出6)    

12.Swift之元组
元组:把不同的数据组织在一起
语法:(数据类型,数据类型...)//小括号
举例(1):

var yz:(Int,Int)=(1,2)
println(yz)(输出(1,2))
println(yz.0)(输出1)
println(yz.1)(输出2)

举例(2):

var yz:(Int,Int)=(1,2)
var (a,b)=yz
println(a)(输出1)
println(b)(输出2)

举例(3):

var yz=(x:1,y:2)
println(yz.x)(输出1)
println(yz.y)(输出2)

举例(4):

var student = (name:“张三”,age:22,sex:“男”,fy:4600)
println(student.name)

13.Swift之函数与元组
举例:

func** **f()->(Int,Int)  //返回值是一个元组
{
  return (1,2)
}
var (a,b)=f()
println(a)(输出1)

举例:

func sumAndmuti(n:Int)->(Int,Int)  //返回值是一个元组
{
  var s=0
  var ss=0
  for a in 1...n
  {
     s+=a
     ss*=a
  }
  return (s,ss)
}
var rr=sumAndmuti(4) 
println(rr)(输出(10,24))

14.Swift之变量生命周期

全局变量:定义在所有函数外面的变量
局部变量:定义在大括号里面的变量

15.Swift之函数的嵌套

元组不能用==去比较,可以用switch语句去比较,举例:
var yz:(Int,Int)=(1,2)
switch yz
{
  case (1,1):
     println(“是(1,1)”)
  case (_,2):
     println(“是(_,2)”)
  default:
     println(“不是(1,1)”)
}

在swift语言中,函数是可以嵌套的,可以使用被嵌套函数的数据,嵌套的函数只能被嵌套的那个函数调用,不能被外边调用。

函数的嵌套举例:

func f()
{
  var a=123
  func ff()
  {
    println(a)
  }
 ff()  //函数的调用
}
f()   //函数的调用

16.Swift之枚举和关联值

枚举属于自定义的数据类型

语法:enum 枚举的名称
     {
      case 名称
      case 名称
      ...
     }

举例:

enum xingqi  //定义星期的枚举
{
  case xingqi1 //里面有七个值
  case xingqi2
  case xingqi3
  case xingqi4
  case xingqi5
  case xingqi6
  case xingqi7
}
var xq=xingqi.xingqi1 //定义一个星期的变量
xq= .xingqi2  //前面要有一个点
switch xq
{
  case .xingqi1: 
     println(“星期一”)
  case .xingqi2:
     println(“星期二”)
  case .xingqi3:
     println(“星期三”)
  case .xingqi4:
     println(“星期四”)
  case .xingqi5:
     println(“星期五”)
  case .xingqi6:
     println(“星期六”)
  case .xingqi7: 
     println(“星期日”)
}(xq=  .Xingqi2时输出星期二)
(七种都罗列里面就不需要default,罗列不到七种,就需要default)

** 关联值**举例:

enum huowu
{
  case bianhao (Int,Int)
  case mingcheng (String)
}
var aa=huowu.bianhao(10,10)
switch aa
{
case  .bianhao (let b,let c):
  println(“b=\(b),c=\(c)”)
case  .mingcheng (let b)
  println(“b=\(b)”)
}
(当aa=huowu.bianhao(10,10)时,输出b=10,c=10)
(当aa=huowu.mingcheng(“kangshifu”)时,输出kangshifu)

17.Swift之结构体和类

结构的语法:
struct 结构的名称(首字母应该大写)
{
属性(变量的定义)(驼峰)用来保存东西
方法(函数的定义) 用来提供功能
}

类的语法:
class 结构的名称(首字母应该大写)
{
属性(变量的定义)(驼峰)用来保存东西
方法(函数的定义) 用来提供功能
}

定义结构举例:

struct  Student
{
  var name:String
  var age:Int
  func say()
  {
    Println(“我叫\(name),今年\(age)岁了”)
  }
}
实例化结构:
var zs=Student(name:”张三”,age:20)  //初始化
zs.say()
运行程序得到(我叫张三,今年20岁了)

定义举例:

class  Student
{
  var name =”无名氏”
  var age =1
  func say()
  {
    Println(“我叫\(name),今年\(age)岁了”)
  }
}
实例化类:
var s=Student()  //初始化
s.name=”张老三”
s.age=22
s.say()
运行程序得到(我叫张老三,今年22岁了)

结构和类的区别:
1.结构是值的类型,赋值的时候是拷贝。类是引用的类型,赋值的时候是引用。
2.结构的常量实例,无论是变量还是常量属性,都是常量型的,不能在赋值了。
类的常量实例,常量属性不能再赋值,但是变量属性仍然可以再赋值
结构的属性
1.对于结构变量型实例来说,变量型的属性随时可以赋值,但对于常量型的属性只能在定义时和初始化时去赋值,以后再也不能赋值了。
2.对于结构常量型实例来说,变量型的属性和常量型的属性都只能在定义时和初始化时去赋值,以后再也不能赋值了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容