博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二章 Scorpio-CSharp基础语法介绍 语法篇
阅读量:5921 次
发布时间:2019-06-19

本文共 2740 字,大约阅读时间需要 9 分钟。

1. if

1   var a = 300 3   if (a == 100)  {
5 print(100) 7 } else if (a == 200 && true || !(a == 300)) {
9 print(200)11 } elif (a == 300 || true) {
13 print(300)15 } elseif (a == 400) {
17 print(400)19 } else {
21 print(0)23 }

 

  else if(有空格) 和 elif 和 elseif(无空格)  三种写法都可以使用,都当作 else if 使用

  if 里面的变量 除了 false和null 其他变量全部可以判断通过,也就是当作true处理, 例如 if(1) if([]) if ({}) 都会判断通过

  PS : string类型可以直接使用 > < >= <= 直接比较, 并且操作符号为 && ,或者操作符号为 || , 取反操作使用!

2. for 循环

//基本for循环 for (var i = 0;i < 10; ++i) {
    print(i) } print("===================") //单纯for循环 初始值,最终值(包含),step(不写默认为1) for (var i = 0, 10) {
    print(i) } print("===================") for(var i = 0, 10, 2) {
    print(i) } //上述为简易for循环, 注意,中间是逗号不是分号,这种就相当于  for (var i = 0; i <= 10; i += 1) 这样 //此种简易for循环执行效率比 第一种 要好点, 第一个值声明 i 初始值,第二个值为结尾值(包含此值),第三个值为递增值(如果不写第三个逗号默认为1)

 

 

3. foreach 循环

foreach 一般用来循环 array 和 table变量

1 var arr = [100,200,300,400]  2 foreach (var p in pairs(arr))  {  3     print(p.key + " = " + p.value)  4 } 6 foreach (var p in kpairs(arr)) {
8 print("key = " + p)10 }12 foreach (var p in vpairs(arr)) {
14 print("value = " + p)16 }

 

table 用法跟array一样

foreach 原生支持 pairs(返回键值) kpairs(只返回键) vpairs(只返回值) 三种函数

foreach 内的函数也可以重载 例如

 

function test(a) {
    var index = 0     var count = array.count(a)     //直到不返回任何值 跳出foreach循环     return function() {
        if (index < count) {
            return a[index++]         }     } } var a = [1,2,3,4] foreach (var p in test(a)) {
    print(p) }

 

foreach 是调用的test函数,test函数返回一个函数,然后foreach会每次调用,直到不返回任何值时foreach跳出

4. while 循环

  跟其他语言用法一样 while (true) { } , 不支持 do while

5. try catch 抛出异常

function trycatch(arg,th) {     try {         if (arg) {             throw th         }         print(arg + "     hello world   ")     }  catch(e) {         print("error : " + th)     }     print("finished") } trycatch(false) trycatch(true, "ffffffffffffffff")

 

try catch 可以跳过一些不确定的代码 以 保证后续的代码正常执行

PS:try catch 也可以捕捉c#的异常

6. 变长参数

function test(a,...b) {     print(a)     print(array.count(b))     foreach (pair in pairs(b)) {         print(pair.value)     } } test(100,200,300,400)

 

上述代码中 带有 … 会被解析成 变长函数, b 会保存成 一个脚本的 array 类型,即 上面调用中 a为 100, b 为 [200,300,400]

7. 运算符

脚本支持 所有基础运算  加减乘除等

脚本还支持位运算

var a = 1024L a |= 1L print(a) a ^= 1L print(a) a >>= 1L print(a) a <<= 1L print(a) a &= 1L print(a)

 

PS : 位运算支持long类型,double类型不行

8. 特殊

脚本中函数可以定义内部变量 例如

function test() {   print(a)}test.a = 100test() //上述代码中 test.a = 100 把函数 test 赋值一个 a 变量,然后再 test 函数内部 就可以直接使用 a 变量 var a = 0 if (a == 0)   print("true") //if 判断 如果只有一句的话 可以不加大括号,可以优化代码行数 PS : 如果是 if(true) return; 如果if语句里面只有一个return 请在return后面加上 分号; 否则会编译失败

 

转载于:https://www.cnblogs.com/qingfeng346/p/5178150.html

你可能感兴趣的文章
Maven生命周期
查看>>
105个软件测试工具大放送
查看>>
Docker探索系列2之镜像打包与DockerFile
查看>>
treegrid and datagrid ctrl or shift selectRow
查看>>
[转]CentOS 6.4下PXE+Kickstart无人值守安装操作系统
查看>>
分布式与集群的联系与区别
查看>>
不重新编译php安装配置eAccelerator
查看>>
_beginthreadex注意事项
查看>>
xcode 打包
查看>>
消息队列库——ZeroMQ
查看>>
android 物理按键 监听
查看>>
python 批量重命名
查看>>
多模匹配算法之Aho-Corasick
查看>>
android中的style部分属性值介绍 --zz
查看>>
Storm消息可靠机制
查看>>
Android-Universal-Image-Loader
查看>>
第6章 Selenium2-Java 自动化测试模型
查看>>
解析.NET对象的跨应用程序域访问(下篇)
查看>>
工作流管理系统
查看>>
模式对话框
查看>>