通过这章的基础介绍,希望大家能够基本上掌握百宝云的语法与使用方法,能够根据自己的需要编写出自己的云服务。这章的知识可能有点无味,但是却是百宝云的基础所在,所以大家还是好好把基础打下,这样才能更好更快的学习后面的知识。

第五节:数组

数组这个知识点还是非常重要的,日常的项目里也少不了它的存在,因此,通过这节课,希望大家能掌握数组的一些常规使用方法,以便大家在日后的项目里熟练运用。

5.1 概念

数组是一系列数据的集合,可以存储大量数据,通过数组的下标、key,可以实现对数据的快速访问。

为什么要使用数组,什么场景使用数组?

好,首先我们来分析一个需求。

小花参加一次唱歌比赛中,有5名裁判打分,得到如下成绩:  89分, 90分, 80分, 95分, 82分。那么要求是:去掉最高分与最低分,最后成绩是多少? 判断出是哪个裁判的分最高与最低?

如果我们还是按照以前的思路去写的话,代码是这样的:

功能  得到成绩()

变量 裁判1成绩 = 89

变量 裁判2成绩 = 90

变量 裁判3成绩 = 80

变量 裁判4成绩 = 95

变量 裁判5成绩 = 82

// 这样的写法去判断,代码思路比较乱,而且也不方便扩展,所以就不写了

// 想这样写的读者,可以自己去写写看.

结束

这样使用了5个变量存储5个成绩,要计算出最后成绩的话,需要5 个成绩两两比较,这样的处理比较麻烦。那么有没有方便的处理办法呢?

有,这就需要用到数组了,使用数组之后,这些处理就方便很多了,后期的扩展也方便了。

那么用数组之后的写法是怎么的呢?如下:

功能 得到成绩()

变量 裁判成绩 = 数组()

裁判成绩[0] = 89

裁判成绩[1] = 90

裁判成绩[2] = 80

裁判成绩[3] = 95

裁判成绩[4] = 82

//变量 裁判成绩 = 数组(89,90,80,95,82)

变量 最高分 = 裁判成绩[0],最高分裁判 = 0,最低分 = 裁判成绩[0],最低分裁判 = 0,总成绩 = 0

遍历(变量 i = 1; i < 5; i++)

如果(最高分 < 裁判成绩[i])

最高分 = 裁判成绩[i]

最高分裁判 = i

结束

如果(最低分 > 裁判成绩[i])

最低分 = 裁判成绩[i]

最低分裁判 = i

结束

结束

遍历(变量 i = 0; i < 5; i++)

如果(i == 最高分裁判 || i == 最低分裁判)

继续

结束

总成绩 = 总成绩 + 裁判成绩[i]

结束

发送文本消息("总成绩为:" & 总成绩)

发送文本消息("最高分裁判是:" & (最高分裁判 +1) & "号裁判")

发送文本消息("最低分裁判是:" & (最低分裁判 +1) & "号裁判")

结束

这样一写之后,代码简洁了很多,条理看起来也清楚了很多。扩展起来也简单多了,就是增加数组元素,其他的都不要改了。

5.2 数组的基本用法

数组里面是可以同时存储多种类型数据。常用的数组分下面三大类型。

5.2.1索引数组

这类的数组是最简单的数组,操作起来也很简单,这类数组的下标基本上是从0开始,到数组长度-1。如上面的例子,使用的就是索引数组。简单示例如下:

//变量 a = 数组[3]("宝马","卡宴","奥迪")//

//或者

变量 a = 数组[3]

a[0] = "宝马"

a[1] = "卡宴"

a[2] = "奥迪"

//遍历数组

遍历(变量 i=0;i<3;i++)

发送文本消息(a[i])

结束

5.2.2关联数组

这类数组的特点是:key è value。也就是一个key对应一个value。这里的key可以是任意字符串。如下列的示例:

//变量 a = 数组("key1"="宝马","key2"="卡宴","key3"="奥迪")

//或者

变量 a = 数组()

a["key1"] = "宝马"

a["key2"] = "卡宴"

a["key3"] = "奥迪"

//显示指定数组元素

发送文本消息(a["key2"])

索引数组与关系数组的区别:

选项

描述

索引数组

定义

//索引数组变量定义有五种写法
1、变量 数据 = 数组[5] //未初始成员元素,默认所有元素为null,数组大小为5
2、变量 数据 = 数组[5]() //未初始成员元素,默认所有元素为null,数组大小为5
3、变量 数据 = 数组[5](1,2,3,4,5) //初始化成员元素,数组大小为5
4、变量 数据 = 数组[](1,2,3,4,5) //能过初始化成员元素,确定数组大小为5 
5、变量 数据 = 数组[] //定义数组大小为0的数组

元素范围

下标是从0开始,到数组大小-1,如果访问元素,超过下标范围,程序会报错,提示访问数组越界

访问方式

变量 内容 = 数据[0]
在访问的时候[]中间一定是整数型值,否则程序会提示访问越界数组

关联数组

定义

//关联数组定义有三种写法
变量 数据 = 数组() //未初始化成员元素的定义,没有成员元素,数组大小为0
变量 数据 = 数组("a","b","c",4,5,6) //初始化成员元素的定义,数组大小为6
变量 数据 = 数组("a"="a","b"="b","c"="c","d"=4,"e"=5,"f"=6) //初始化指定key的成员元素的定义,数组大小为6

元素范围

关联数组理论上可以无限大,且不会存在越界等错误.

访问方式

关联数组采用的是一种key->value对应的方式存在,我们在访问关联数组,采用如下方法 
变量 内容 = 数据["abc"]
在这里,关联数组本身具有自动增加元素的特性,当元素不存在,第一次访问的时候会自动增加,并设置初始值为null

5.2.3 多维数组

百宝云里的多维数组定义与其他语言的不同,不是

变量 b = 数组[2][2]   // 此写法是错误的

这样的写法在百宝云里是错误的,应该是下面这样的写法:

//索引多维数组

变量 车辆资料 = 数组[3](数组[3]("Volvo",22,18), 数组[3]("BMW",15,13), 数组[3]("Saab",5,2))

//或者

变量 车辆资料 = 数组[3]()

车辆资料[0] = 数组[3]("Volvo",22,18)

车辆资料[1] = 数组[3]("BMW",15,13)

车辆资料[2] = 数组[3]("Saab",5,2)

变量 n = 数组大小(车辆资料)

遍历(变量 i=0;i  < n;i++)

变量 临时数组 = 车辆资料[i]

变量 n1 = 数组大小(临时数组)

遍历(变量 j=0;j  < n1;j++)

发送文本消息(临时数组[j])

结束

结束

在日常的项目当中,我们用到二维数组就差不多了,再增加维数,那样操作起来就麻烦了。

以下我们再来学习下keyàvalue类型的多维数组。示例如下:

//关联索引数组

变量 车辆资料 = 数组()

车辆资料["张三"] = 数组("品牌" = "Volvo","里程" = 22,"车铃" = 18)

车辆资料["李四"] = 数组("品牌" = "BMW","里程" = 15,"车铃" = 13)

车辆资料["王五"] = 数组("品牌" = "Saab","里程" = 5,"车铃" = 2)

//通过遍历的方式,访问关联数组中所有的元素

变量 n = 数组大小(车辆资料)

遍历(变量 i=0;i < n;i++)

变量 临时值

数组获取元素(车辆资料,i,临时值)

变量 n1 = 数组大小(临时值)

遍历(变量 j=0;j < n1;j++)

变量 临时键1,临时值1

关联数组获取元素(临时值,j,临时值1,临时键1) //记住这里只能是关联数组,否则会获取元素失败

发送文本消息("key:"&临时键1&" "&"value:"&临时值1)

结束

结束

//也可以通过关联数组的key 直接访问对应的元素

发送文本消息("李四的车辆品牌是:" & 车辆资料["李四"]["品牌"])

百宝云还提供了一系列操作数组的命令,大家有时间的时候,都去看看这些命令,最好能把命令的示例给运行下,这样就更容易掌握各个命令的用途了。

转载于:https://my.oschina.net/u/2408868/blog/546148

百宝云数组语法新手教程相关推荐

  1. 百宝云注册码系统新手教程

    第三章:百宝云实例演练 第三节:注册码系统 3.1 注册码系统的设计图: 注册码系统一般都有以下这些功能: 1) 试用 2) 生成注册码 3) 解绑注册码 4) 冻结注册码 5) 解冻注册码 6) 删 ...

  2. XScript接入百宝云注册码系统示例教程

    XScript接入百宝云注册码系统示例教程 一.先去应用中心安装本注册码系统 二.接口代码介绍: 1.由于代码太长,没办法复制到经验上,暂时截一部分图给大家示例下,大家有需要就直接去bby论坛搜索XS ...

  3. 百宝云自定义功能函数教程

    第四节:自定义功能函数 通过这节课我们可以掌握自定义函数的定义与使用方法,同时理解参数与返回值的作用,这样我们才能在实际的开发过程中,正确的使用自定义函数. 4.1 概念 功能是百宝云的基本模块,通过 ...

  4. 易、TC、按键、E4A接入百宝云网络验证系统教程与防破解技巧

           百宝云网络验证系统是一款集合验证,防破解,自动售卡,代理功能等等等等众多优点于一身的一款网络验证系统,自其发布之日起就受到了大家广泛的喜爱.

  5. 百宝云语法变量与常量新手教程

    第一章:基础语法(一) 通过这章的基础介绍,希望大家能够基本上掌握百宝云的语法与使用方法,能够根据自己的需要编写出自己的云服务.这章的知识可能有点无味,但是却是百宝云的基础所在,所以大家还是好好把基础 ...

  6. 百宝云变量与常量语法教程

    第一章:基础语法(一) 通过这章的基础介绍,希望大家能够基本上掌握百宝云的语法与使用方法,能够根据自己的需要编写出自己的云服务.这章的知识可能有点无味,但是却是百宝云的基础所在,所以大家还是好好把基础 ...

  7. 百宝云常用运算符语法解析

    第一章:基础语法(二) 通过这章的基础介绍,希望大家能够基本上掌握百宝云的语法与使用方法,能够根据自己的需要编写出自己的云服务.这章的知识可能有点无味,但是却是百宝云的基础所在,所以大家还是好好把基础 ...

  8. 百宝云Json与数组命令教程

    百宝云Json与数组 JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式.它基于ECMAScript的一个子集.JSON采用完全独立于语言的文本格式,但是也使用了类 ...

  9. XScript接入百宝云注册码系统教程

    全代码解析怎么吧XScript项目接入到百宝云注册码系统中. 百宝云注册码系统提供了服务器和自动发卡,所以我们只需要介绍如何接入,服务器不需要作者操心 一.先安装百宝云注册码系统 http://www ...

  10. ROS探索总结(一)(二)(三):ROS总体框架 ROS总体框架 ROS新手教程

    ROS探索总结(一)--ROS简介 一.历史 随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求原来越强烈,而已有的开源机器人系统又不能很好的适应需求.2010年Willow Garage公 ...

最新文章

  1. [教程]Python函数的参数
  2. 滤波电容、去耦电容、旁路电容作用
  3. java B2B2C源码电子商务平台-基于Consul的分布式锁实现
  4. WindowsPhone7真机部署和调试程序
  5. 关注WebWork(四)
  6. Flex与.NET互操作(九):FluorineFx.NET的认证(Authentication )与授权(Authorization)
  7. 电商设计提升水平,需要优秀的模板素材进行临摹练习!
  8. python logging模块详解_python logging模块使用总结
  9. 199-Pycharm相关
  10. Python不能做游戏?Pygame中的对象你了解吗?
  11. 研究解决CLOB字段IO问题的方法
  12. double im2double mat2gray之一二说
  13. 宁夏移民文化的四个特点
  14. 10 大开源免费的项目管理软件推荐
  15. 批量删除取消微博关注
  16. JS 数字,金额 用逗号 隔开(数字格式化)
  17. deepin 安装git
  18. open cv平面对象检测及翘曲图像校正-基于FLANN的特征检测和透视变换
  19. Python机器学习13——主成分分析
  20. Comet OJ 2019 夏季欢乐赛题解

热门文章

  1. python脚本王者荣耀自动刷金币
  2. js 实现图片放大镜原理
  3. 百度优化排名_思路和步骤
  4. lua invalid pattern capture
  5. 为什么ios比android流畅
  6. [linux]记录内核编译日志
  7. 统一社会信用代码及其校验规则
  8. Chrome源码chromium下载编译详细步骤
  9. 在线机械键盘测试软件,键盘检测软件(DAS G2 104/105 Keyboard Test Tool)
  10. npm run build 报错: No such file or directory