swift基础之<二>

前端之家收集整理的这篇文章主要介绍了swift基础之<二>前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. //类型安全,swift中不支持隐式转换
  2.  
  3.  
  4. //var c = 100
  5. //var c1 = 100.85
  6. //
  7. //let res = c + c1
  8. //总结:swift 中不同数据类型,不能赋值和运算
  9. //---------循环语句---------
  10. //for in /for/while/ do while
  11.  
  12. var sum_1 = 100
  13.  
  14. while(sum_1 > 50)
  15. { //--,++ 不能空格
  16. sum_1--
  17.  
  18. print("sum_1 \(sum_1)")
  19. }
  20.  
  21. //do while
  22.  
  23. repeat{
  24. sum_1--
  25.  
  26. print("sum_1 \(sum_1)")
  27.  
  28. }while(sum_1 > 50)
  29.  
  30. //总结:do while 换成了repeat while 其他语法没有改变
  31.  
  32.  
  33. //分支语句
  34. // if else
  35.  
  36. var girlfriend = (name:"XXX",age:30)
  37. if girlfriend.age <= 18
  38. {
  39. print("too young too naive")
  40. }else if girlfriend.age > 18 && girlfriend.age <= 22
  41. {
  42. print("I want you")
  43. }else if girlfriend.age > 22 && girlfriend.age <= 30
  44. {
  45. print("not bad")
  46. }else
  47. {
  48. print("OMG")
  49. }
  50. //Switch
  51.  
  52. let source = 68;
  53. switch source
  54. {
  55. case 0..<60:
  56. print("不及格")
  57.  
  58. case 60..<80:
  59. print("及格")
  60. fallthrough
  61. case 80..<90:
  62. print("良好")
  63. case 90..<100:
  64. print("优秀")
  65.  
  66. case 100:
  67. print("满分")
  68. default :
  69. print("输入有误")
  70. }
  71. //Switch判断条件可以是字符串
  72.  
  73. let let_str = "lee"
  74.  
  75. switch let_str
  76. {
  77. case "zz":
  78.  
  79. print("doubi")
  80.  
  81. case "lee":
  82.  
  83. print("cool")
  84. default:
  85. print("yeah")
  86. }
  87.  
  88. let point = (0,0)
  89. switch point
  90. {
  91. case (0,0):
  92. print("原点")
  93. case(0,_)://占位符_
  94. print("y轴上")
  95. case(_,0):
  96. print("x轴上")
  97. default:
  98. print("其他")
  99. }
  100.  
  101.  
  102. /*
  103. 1switch不需要加break,也就是默认没有贯穿,判断条件不用加()
  104. 2: 如果想实现贯穿需要加 fallthrough
  105. 3: switch可以以字符串和元组作为判断条件
  106.  
  107. */
  108.  
  109. //----------函数----------
  110. //1.无参无返回值函数
  111.  
  112. func method1() ->Void
  113. {
  114.  
  115. }
  116.  
  117. //省略版 无参无返回值函数
  118. func method2()
  119. {
  120. print("我是无参无返回值的函数")
  121. }
  122. //2:无参有返回值
  123. func method3() ->String
  124. {
  125. return "wp"
  126. }
  127.  
  128. let func_str = method3()
  129.  
  130. print(func_str)
  131.  
  132. //3.有参无返回值
  133.  
  134. func method4(A:Int,B:String,C:Float) ->Void
  135. {
  136.  
  137. }
  138. //4.有餐有返回值
  139. func method5(A A:Int,B:Int) ->Int
  140. {
  141. if A > B
  142.  
  143. {
  144. return A
  145. }else
  146. {
  147. return B
  148. }
  149. // return A > B ? A : B
  150. }
  151.  
  152. let func_int1 = method5(A : 100,B : 25)
  153.  
  154. print(func_int1)
  155.  
  156. //5.有参有返回值(返回多个值)
  157.  
  158. func method6 (name:String,age:Int,gender:String) ->(String,Int,String)
  159. {
  160. return("ez",18,"boy")
  161. }
  162.  
  163. print(func_int1)
  164.  
  165.  
  166. let fun_str_2 = method6("s",age: 12,gender: "female")
  167.  
  168. print(fun_str_2.0)
  169.  
  170. //交换函数参数的值(如果改变参数函数,需要在参数前面加一个关键字:inout)
  171.  
  172. func method7(inout A:Int,inout B:Int) ->Void
  173. {
  174. let temp = A
  175. A = B
  176. B = temp
  177.  
  178. }
  179.  
  180. var A = 100
  181. var B = 999
  182.  
  183. method7(&A,B: &B)
  184. print(A)
  185.  
  186. //---------------------------枚举-----------------------
  187. enum Season : Int
  188. {
  189. case Spring = 0
  190. case Summer
  191. case fall
  192. case winter
  193. }
  194. //根据C语言对比,枚举多了Case关键词,不用加逗号“,” Swift中枚举为 int 类型的, 不会默认从0开始
  195. let enum_1 = Season.Spring
  196. //typealias Newname = Season
  197.  
  198. switch enum_1
  199. {
  200. case.Spring:
  201. print("春天")
  202. case.Summer:
  203. print("夏天")
  204. case.fall:
  205. print("秋天")
  206. default:
  207. print("冬天")
  208. }
  209.  
  210. print(enum_1)
  211.  
  212. //总结:Switch用枚举作为判断条件,case后面是用“.”来获取枚举的值
  213. //switch中,当所有case条件满足,default可以省略,若不满足必须加default
  214.  
  215. //第二种枚举(可以用字符串定义枚举值
  216.  
  217. enum Season2:String
  218. {
  219. case Spring = "春天"
  220. case Summer = "夏天"
  221. case Autumn = "秋天"
  222. case Winter = "冬天"
  223.  
  224. }
  225. //----------------结构体--------------
  226. // Swift结构体,相当于swift中的类。结构体是值类型(重新拷贝一份值,修改拷贝的值对原来的值没有影响,类是引用类型(共用一个内存地址,原值会改变影响新值)
  227. struct Person {
  228. //对象的属性
  229. var name: String
  230. var age : Int
  231. //对象的方法
  232. func sayHello()->Void
  233. {
  234. print("你好")
  235. }
  236. //方法
  237. static func sayHi() ->Void
  238. {
  239. print("HI")
  240. }
  241. //属性
  242. static var personName:String?
  243.  
  244. }
  245. //生成一个对象
  246. let per1 = Person(name: "z",age: 21)
  247.  
  248. //调用对象方法
  249. per1.sayHello()
  250. //输出对象的名字
  251. print(per1.name)
  252.  
  253. //调用方法
  254. Person.sayHi()
  255.  
  256. Person.personName = "lisi"
  257.  
  258. var p1 = Person.init(name: "lol",age: 111)
  259. var p2 = p1
  260.  
  261. print(p2.name)
  262. p1.name = "zzz"
  263. print(p2.name)
  264.  
  265. print(Person.personName!)
  266.  
  267. //
  268.  
  269. class Student {
  270. var name: String?//类,声明属性必须用可选方法
  271. var age: Int?
  272.  
  273. func sayFuck()->Void
  274. {
  275. print("fuck")
  276. }
  277. static var studentName:String?
  278. }
  279.  
  280. var stu1 = Student()
  281. stu1.name = "www"
  282. stu1.age = 35
  283.  
  284. var stu2 = stu1
  285. print(stu2.name)
  286.  
  287. stu1.name = "hole"
  288. print(stu2.name)

猜你在找的Swift相关文章