1、简单示例如下: switch用例

在js中判断变量现值是否为空我们直接undefined, null, \’\’, false, 0,
[], {}
来操作,下面我给大家演示几个实例,有需要了解的朋友可参考,希望对各位有所帮助。

*分支if*

* Swift 提供了类似 C 语言的流程控制结构(if/switch/for/while/dowhile)

* 只能以Bool作为条件语句

* 条件语句不需要加()

* {}不能省略

* swift中if分支的模式可以使用where语句来判断额外的条件

* 其它跟OC中if一样

let intValue = 10

” if intValue > 2{

”    print(“yes”)

” }

” //用where额外判断

” let testValue: Int? = 10

” if let d = testValue where testValue > 9{

”    print”满足了”

” }

复制代码 代码如下:

方法一:

*Bool类型*

* c语言和OC语言没有真正的BOOL类型

* OC语言的Bool类型YES/NO是`typedef signed char BOOL;`非0即真

* swift引入了真正的BOOL类型true / false

* swift中逻辑只有两个 true / false

*
如果你在需要使用BOOL类型的地方使用了非布尔值,swift的类型安全机制会报错

if intValue = 10 { } //这种可能将判断写错,swift有效的避免了这种情况

” if intValue == 10 {

”    print(intValue)

” }

var caseContent = ”;//条件判断后处理内容
var caseValue = 5 ;//条件判断值
switch(caseValue){
case 0:
caseContent = “鞋子”;
break;
case 1:
caseContent = “裤子”;
break;
case 2:
caseContent = “外套”;
break;
… …
case 5:
caseContent = “帽子”;
break;
default :
caseContent = “随便”;
break;
}

 代码如下

*三目运算符*

*
三目运算符的特殊在于它是有三个操作数的运算符,它简洁地表达根据问题成立与否做出二选一的操作

* 格式: 问题 ?答案一 : 答案二

* 提示 : swift中三目运算符用得很多

* 注意
:过度使用三目运算符会使简洁的代码变的难懂。我们应避免在一个组合语句中使用多个三目运算符

let result = intValue > 20 ? 20 : 19

数组用例

复制代码

*分支switch*

* OC中case后面必须加上break否则会贯穿,swift不用

* swift中如果想使用贯穿必须使用 fallthrough

* OC中可以不写default,swift中只有满足所有条件才能忽略default

* OC中default可以随便放,swift不可以

* OC中case中定义变量需要加大括号,否则作用域混乱,swift不用加大括号

* swift的switch可以判断区间和元祖

* swift中case分支的模式可以使用where语句来判断额外的条件

注意:swift中每个case分支都必须包含至少一条语句, 不像 C
语言里的switch语句,在 Swift 中,switch语句不会同时匹配多个条件

” //OC中写法

” switch(rank){

” case “A”:

” case “B”:

”    NSLog(@”还不错”)

”    break

” case “C”:

”    NSLog(“差”)

”    break

” }

” //swift 写法 default不能随便放,只能放在最后

” var rank = “A”

” switch rank{

” //    default:

” //    print(“没有评级”)

” case “A”, “B”:

”    var num = 10

”    print(“优”)

”    fallthrough

” case “C”:

”    print(“差”)

” default:

”    print(“没有评级”)

” }

复制代码 代码如下:

var keyVal= $(“#key”).val();
if(keyVal==undefined || keyVal==”” || keyVal==null){
     alert(“隐藏域的值为空”);
}

*匹配区间*

* 闭区间操作符 . . . 包含头包含尾

* 半开区间操作符 . .< 包含头不包含尾

” var age1 = 10

”        switch age1 {

”        case 0:

”          print(“0”)

”        case 1..<18:

”          print(“未成年”)

”        case 18..<30:

”          print(“成年”)

”        default:

”          print(“老年人”)

”        }

”        //: 匹配元祖

”        var point = (50, 50)

”        switch point{

”          // 只有where后面的条件表达式为真才赋值并执行case后的语句

”        case (0, 0):

”          print(“原点”)

”        case (50, 50):

”          print(“中点”)

”        default:

”          print(“Other”)

”        }

”        //: 值绑定(Value Bindings)

”        switch point{

”          // 只有where后面的条件表达式为真才赋值并执行case后的语句

”        case var(x, y) where x > y:

”          print(“\(x) > \(y)”)

”        case var(x, y) where x < y:

”          print(“\(x) < \(y)”)

”        default:

”          print(“Other”)

”        }

var caseContent = ”;//条件判断后处理内容
var caseValue = 5 ;//条件判断值
var caseContentArr = [“鞋子”,”裤子”,”外套”… …,”帽子”];
caseContent = caseContentArr[caseValue] ?
caseContentArr[caseValue]:”随便”;

此方法效率不高,不建议。

2、优缺点分析
数组方式代码简洁、效率高,但可读性不如switch用例。

方法二:

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注