编程基础_2020-03-09_03

1. 如何调试程序

a. 语法错误

语法错误指的是不符合程序语言的语法,这样的程序无法执行

const draw = function(l) {
    //变量len未定义
    len = l + 20 
  
    log('draw, len', len)
    forward(len)
}

draw(100)

//运行结果:
运行时有错误产生,函数调用情况:
C:\Users\jixia\Documents\快编程\lesson03\lesson.gua | 第 161 行 | 全局
  draw(100)
C:\Users\jixia\Documents\快编程\lesson03\lesson.gua | 第 156 行 | draw
  len = l + 20
变量未定义: 
b. 逻辑错误

逻辑错误指的是程序可以运行,但是得到的不是预期的结果

const draw = function(l) {
    //要打印变量l的值,错写成数字1
    log('draw, l', 1)
    forward(1)
}
draw(100)

//运行结果:
draw, l 1 //预期结果为100
c. 调试程序的两个难点

1.程序的运行路径你不知道,要想去办法让它显示出来

  1. 程序的运行状态(变量的值)你不知道,要去看到它

PS:因此可以使用log()来进行调试,使用log()函数时一定要标记输出值的含义,否则会混淆

2.数组

a. array 可以存储很多元素, 每个元素的值、类型都可以不同

var demoArray = function() {
    // array(数组)常用操作
    // 创建数组
    // 使用 [] 符号, 每个元素用逗号分隔
    var a = [1, 3, 4, 5]
    // 现在 a 是一个 array, 拥有 4 个元素


    // 可以用 .length() 的方式得到 array 的长度
    log('求 array 长度', a.length())
    // 使用 .length() 可以求出数组的长度(数组中元素的个数)
    // 值可以用变量接住
    var length = a.length()
    log('a.length() ', length)

    // 访问元素
    // 对于数组中的每个元素, 可以通过下标访问
    // 下标就是元素在数组中的序号, 从 0 开始
    // 下标访问语法是 [] 中括号
    log('用下标访问 array 中的元素')
    log('a[0]', a[0])
    log('a[1]', a[1])
    log('a[2]', a[2])
    log('a[3]', a[3])
    // 因为一共只有 4 个元素, 所以访问不存在的下标会出错
    // log(a[4])

    // 手动访问元素当然是低效的
    // 可以用循环来访问元素, 这个过程叫 遍历
    log('循环访问 array 所有元素')
    var i = 0
    //这里a.length()在每次循环时,都要计算一次,可以先将a.length赋值给一个变量,再使用
    while(i < a.length()) {
        log('a[i]', a[i])
        i = i + 1
    }
}
//运行结果:
求 array 长度 4
a.length()  4
用下标访问 array 中的元素
a[0] 1
a[1] 3
a[2] 4
a[3] 5
循环访问 array 所有元素
a[i] 1
a[i] 3
a[i] 4
a[i] 5

b.可以用数组的 push 函数往列表末尾插入一个元素,并且, 这个新元素可以是任意类型, 这里是一个字符串 ,数组类型的变量可以用 .函数() 的方式来进行操作

var demoArrayAdd = function() {
    var a = [1, 3, 4, 5]
    a.add('新元素')
    log('a push ', a)
    // [1, 3, 4, 5, '新元素']

    a.add(0)
    log('a.add(0)', a)
    // [1, 3, 4, 5, '新元素', 0]

    // 多添加几个元素
    a.add(12)
    a.add(34)
    a.add(56)
    log('a.add 12 34 56', a)
}

//运行结果:
a push  [1, 3, 4, 5, '新元素']
a.add(0) [1, 3, 4, 5, '新元素', 0]
a.add 12 34 56 [1, 3, 4, 5, '新元素', 0, 12, 34, 56]

3. 字符串

a. 串可以判断相等、可以相加拼接,可以用加号进行拼接,或者使用字符串有一个 .format 函数可以替换其中的 {}

var name = 'gua'
var hello = '{}, 你好'.format(name)
// 简单说来, 就是 {} 会被变量 name 替换形成新字符串
log('format dmeo ',  name)

//运行结果:
format dmeo  gua

b. 字符串相当于一个 array, 可以用下标访问,也可以使用循环进行遍历,字符串不能使用下标来赋值,只能拼接起来生成一个新的字符串

c. 字符串可以用 .cut 函数来获取子字符串, array 也可以这样切片,可以省略结束下标参数, 表示取到底

PS: cut 操作不会影响原来的字符串

你可能感兴趣的:(编程基础_2020-03-09_03)