Swift-运算符

//
// main.swift
// Swift-运算符
//
// Created by dingkang on 15/12/17.
// Copyright © 2015年 dingkang. All rights reserved.
//

import Foundation
//在Swift语言中,程序要对数据进行大量的运算,就必须利用运算符操纵数据。用来表示各种不同运算的符号成为运算符,由运算符和运算分量(操作数)组成的式子成为表达式。
//运算符是检查、改变、合并值的特殊符号或短语的统称。

//运算符的级别
//按运算符在表达式中与运算分量的关系(连接运算分量的个数),运算符可分位3种
//(1)一目运算符,即一元运算符,一目运算符对单一操作对象操作,如-3,!a
//一目运算符分前置运算符和后置运算符,前置运算符需紧排操作对象之前,如!b,后置运算符需紧跟操作对象之后,如i++。

//(2)二目运算符,即二元运算符,需要两个运算分量,如a+b,x||y。
//双目运算符操作两个操作对象,如2+3是中置,因为它们出现在两个操作对象之间。

//(3)三目运算符,即三元运算符,需要3个运算分量,如a>b?a:b。

//1.赋值运算符
//赋值运算符是用来给变量赋值的。它是双目运算符,用于将一个表达式的值送给一个变量。赋值运算符是一个基本的运算符(=)。
//在Swift中允许在赋值运算符“=”的 前面加上一些其他的运算符,以构成复合的赋值运算符。复合赋值运算符共有10种,分别位:+=、-=、*=、/=、%=、<<=、>>=、&=、^=、!=。

//单元组赋值

let a = 5   //为常量a赋值为5
var b = 10  //为变量b赋值为10
b = a       //将a的值又赋值给b,这是b的值为5
print(b)

运行结果:
运行结果


//多元组赋值

let (x,y) = (1,2) //通过多元组为多元常量赋值
print(x)          //x为1
print(y)          //y为2

运行结果:
运行结果


//字符串赋值运算

let apple = "a"
let banana = "b"
let fruit = apple + banana
print(fruit)

let hello = "hello,"
let world = "world"
let all = hello + world
print(all)

运行结果:

这里写图片描述


//求余运算
//正数求余

let m = 5%2
let n = 2%5
print("5对2取余数为\(m),2对5取余数为\(n)")

运行结果:
这里写图片描述
//负数求余

let aa = -5 % 2
let bb = 5 % -2
let cc = -5 % -2
print("-5对2取余数为\(aa),5对-2取余数为\(bb),-5对-2取余数为\(cc)")

运行结果:
这里写图片描述


//浮点数求余

let dd = 8%2.5
print("8对2.5求余结果为\(dd)")

运行结果:
这里写图片描述

//自增和自增运算
//和C语言一样,Swift也提供了方便对变量本身加1或减1的自增++和自减- -的运算符,其操作对象可以是整型和浮点型

var i = 0
++i
print(i)

运行结果;
这里写图片描述

//每调用一次++i,i的值就会加1,实际上++i是i= i+1的简写,而- -i是i= i-1的简写,++和- -既是前置又是后置运算。++i,i++,–i和i–都是有效的写法。
//++是自增运算符。如a++,++a,都等价于a = a + 1
//–是自减运算符。如a–,–a,都等价于a = a - 1

//++a和a++的区别
//(1)

var j = 10
j++
//(2)
var k = 20
++k
print("j的值为\(j),k的值为\(k)")

运行结果:
这里写图片描述

//单独使用++a和a++时,它们是没有区别的。(1)和(2)两段代码的效果都是让a的值+1,最后a的值都是原有的值自加了1

//(3)

var p = 50
var q = ++p
print("p的值为\(p)q的值为\(q)")

//(4)

var u = 60
var v = u++
print("u的值为\(u),v的值为\(v)")

运行结果:
这里写图片描述
//(3)和(4)两段代码的执行是有区别的
//(3)++p的意思是先对p执行+1的操作,再将p的值赋值给q,最后p和q的值都为51.
//(4)u++的意思是先将u的值复制出来一份,然后对u执行+1操作,于是u就变成了61,但是赋值出来的值还是60,u++运行完毕后,将赋值出来的值赋值给了v,所以最后变量v的值还是60,而变量u的值是61.

//单目负号和单目正号
//单目负号和单目正号又称为单目减加。单目减运算符相当于取反值,若是正值就变为负值,若是负值就变为正值。单目加运算符没有意义,纯粹是和单目减构成一对用的。
//数值的正负号可以使用前缀-(即单目负号)来切换

//单目负号

let two = 2
let minusTwo = -two   //minusTwo = -2
let plusTwo = -minusTwo //plusTwo = 2
print("minusTwo的值为\(minusTwo),plusTwo的值为\(plusTwo)")

//单目正号

let minusFive = -5
let alsoMinusFive = +minusFive  //alsoMinusFive = -5 前面的+符号不会影响minusFive的值
print("alsoMinusFive的值为\(alsoMinusFive)")

运行结果:
这里写图片描述

//复合赋值 (Swift也提供把其他运算符和赋值运算=相结合的复合赋值方式,也称作复合赋值运算符)

var nice = 5
nice += 5
print("nice的值为\(nice)")

运行结果:
这里写图片描述

/**
* 表达式中其他复合赋值运算符的方式如下
(1)+= 加赋值运算符。如 a += 3+2,等价于 a = a +(3+2)
(2)-= 减赋值运算符。如 a -= 3+2,等价于 a = a -(3+2)
(3)= 乘赋值运算符。如 a = 3+2,等价于 a = a *(3+2)
(4)/= 除赋值运算符。如 a /= 3+2,等价于 a = a /(3+2)
(5)%= 取余赋值运算符。如 a %= 3+2,等价于 a = a %(3+2)
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值