循环结构
实际上,在这本书中,我们学习的很多算法就是循环.
我们在这本书中使用两种循环结构,while循环和for循环.
当我们遇到在一个条件总为真的情况下执行一系列的语句时,我们会使用while循环.
例子1-6 演示了while循环是如何工作的.
var number = 1;
var sum = 0;
while (number < 11) {
sum += number;
++number;
}
print(sum); // 打印 55
当我们遇到在给定的次数下执行一系列语句的时候,我们使用for循环.
例子1-7 使用for循环来总计1到数字10.
var number = 1;
var sum = 0;
for (var number = 1; number < 11; number++) {
sum += number;
}
print(sum); // 打印 55
for循环同时也经常被用来获取数组中的元素.
例子1-8 在数组中使用for循环.
var numbers = [3, 7, 12, 22, 100];
var sum = 0;
for (var i = 0; i < numbers.length; ++i) {
sum += numbers[i];
}
print(sum); // 打印 144
函数
javascript提供了一种可以定义带返回值或者不带返回值的函数的方法.(有时候被称为子程序或者void函数)
例子1-9 演示javascript带返回值函数的定义和调用.
例子1-9 带返回值的函数.
function factorial(number) {
var product = 1;
for (var i = number; i >= 1; --i) {
product *= i;
}
return product;
}
print(factorial(4)); // 打印 24
print(factorial(5)); // 打印 120
print(factorial(10)); // 打印 3628800
例子1-10 举例说明如何写一个不带返回值的函数,它不是用来返回值的,而是它处理的过程.
例子1-10 子程序或者void 函数
function curve(arr, amount) {
for (var i = 0; i < arr.length; ++i) {
arr[i] += amount;
}
}
var grades = [77, 73, 74, 81, 90];
curve(grades, 5);
print(grades); // 打印 82,78,79,86,95
在javascript中,所有的函数参数都是按值传递,不存在引用参数.然而却有引用对象,比如数组,就是通过引用传递到函数中的,就像我们在例子1-10中演示的那样.