循环语句和数组

1. 循环语句

在javascript中,循环语句有三种,while、do..while、for循环。

1.1. while循环

基本语法:

//当循环条件为true时,执行循环体,
//当循环条件为false时,结束循环。
while(循环条件){
  //循环体
}

代码示例:

//计算1-100之间所有数的和
//初始化变量
var i = 1;
var sum = 0;
while(i <= 100){//判断条件
  sum += i;//循环体
  i++;//自增
}
console.log(sum);

1.2. 断点调试

断点调试是指自己在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。

调试步骤:

浏览器中按F12-->sources-->找到需要调试的文件-->在程序的某一行设置断点

调试中的相关操作:

Watch:监视,通过watch可以监视变量的值的变化,非常的常用。
F10:程序单步执行,让程序一行一行的执行,这个时候,观察watch中变量的值的变化。
F8:跳到下一个断点处,如果后面没有断点了,则程序执行结束。

tips: 监视变量,不要监视表达式,因为监视了表达式,那么这个表达式也会执行。

1.3. do..while循环

do..while循环和while循环非常像,二者经常可以相互替代,但是do..while的特点是不管条件成不成立,都会执行一次。

基础语法:

do{
  //循环体;
}while(循环条件);

代码示例:

//初始化变量
var i = 1;
var sum = 0;
do{
  sum += i;//循环体
  i++;//自增
}while(i <= 100);//循环条件

思考:

1. 循环输入账号密码的案例用do..while怎么写?
2. 循环表白的案例用do..while怎么写?

//        var i = 1;

//        var sum = 0;

//        while(i <= 100){

//            sum += i;//sum =sum + i;

//            i++;

//        }

//        console.log(sum)

//        var i = 1;

//        var sum = 0;

//        do {

//            sum = sum + i;

//            i++;

//        } while (i <= 100);

//        console.log(sum);

//        var usename = prompt("请输入用户名");

//        var password = prompt("请输入密码");

//        while(usename != "admin" || password != "123456"){

//            usename = prompt("请输入用户名");

//            password = prompt("请输入密码");

//        }

//        do {

//            var usename = prompt("请输入用户名");

//            var password = prompt("请输入密码");

//        } while (usename != "admin" || password != "123456");

//        var love = prompt("请说你爱我y/n");

//        while(love != "y"){

//            love = prompt("请说你爱我y/n");

//        }

//        do{

//            var love = prompt("请说你爱我y/n");

//        }while(love != "y");

//        alert("我也很爱我自己")

1.4. for循环(重点)

写while循环的经常会忘记自增,for循环其实是while循环演化过来的,语法更加的简洁明了,使用非常的广泛。

for循环语法:

//主要for循环的表达式之间用的是;号分隔的,千万不要写成,
for(初始化表达式;判断表达式;自增表达式){
  //循环体
}

执行顺序:1243 ---- 243 -----243(直到循环条件变成false)

  1. 初始化表达式
  2. 判断表达式
  3. 自增表达式
  4. 循环体

for循环代码示例:

//计算1-100之间所有数的和
var sum = 0;
for(var i = 1; i <= 100; i++){
  sum += i;
}

思考1:

1 求1-100之间所有数的和、平均值

var sum = 0;

//

//        for(var i = 1; i <= 100; i++){

//            sum += i;

//        }

//        console.log(sum);

//        var average = sum/100;

//        console.log(average);

2 求1-100之间所有数的乘积

var product = 1;

//        for(var i = 2;i <= 100;i++){

//            product = product * i;

//        }

//        console.log(product);

3 计算1-100之间能3整除的数的和

var sum = 0;

//        for(i = 1;i <= 100;i++){

//            if(i % 3 == 0){

//                sum = sum +i;

//            }

//        }

//        console.log(sum); // 1680

4 计算1-100之间不能被7整除的数的和

var sum = 0;

for(i = 1;i <= 100;i++){

if(i % 7 != 0){

sum = sum +i;

}

}

console.log(sum);  //4315

思考2:

5 求1-100之间所有偶数的和
6 求1-100之间所有奇数的和
7 同时求1-100之间所有偶数和奇数的和

var oddsum = 0; //奇数和

var evensum = 0; //偶数和

for(i = 1; i <= 100; i++){

if(i % 2 == 0){

evensum += i;

}

if(i % 2 != 0){

oddsum += i;

}

}

console.log(evensum);

console.log(oddsum);

思考3:

1 打印正方形
2  打印直角三角形
3 打印9*9乘法表

for(var i = 1;i <= 9; i++){

for(var j = 1;j <= i;j++){

document.write(j + "+" + i + "=" + i*j + "&nbsp;&nbsp;&nbsp;")

}

document.write("<br/>")

}

思考4:

1. 本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?

var money = 10000;

var rate = 0.003;

for (var i = 1; i <= 5; i++) {

money = money + money * rate;

}

console.log(money);


2. 有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,
那么,一对兔子一年内(12个月)能繁殖成多少对?
   兔子的规律为数列,1,1,2,3,5,8,13,21

//    var n1 = 1;

//    var n2 = 1;

//    var sum = 0;

//    for(var i = 3;i <= 12;i++ ){

//        sum = n1 + n2;

//        n1 = n2;

//        n2 = sum;

//    }

//    console.log(sum);

1.5. break和continue

break:立即跳出整个循环,即循环结束,开始执行循环后面的内容(直接跳到大括号)

跳出小循环

// for(var i = 0; i < 20; i ++){

//     console.log("i循环中的内容" + i);

//     var flag = false;

//     for(var j = 0; j < 20; j ++){

//         if(j == 10){

//             flag = true;

//             break;

//         }

//         console.log("j循环中的内容" + j);

//     }

//     if(flag){

//         break;

//     }

// }

跳出大循环

// iloop:

// for(var i = 0; i < 20; i ++){

//     console.log("i循环中的内容" + i);

//     for(var j = 0; j < 20; j ++){

//         if(j == 10){

//             break iloop;

//         }

//         console.log("j循环中的内容" + j);

//     }

// }

continue:立即跳出当前循环,继续下一次循环(跳到i++的地方)

思考1:

//输出结果是什么?
for(var i = 1; i <=10; i++) {
  if(i == 5){
    continue;
  }

  if(i == 7){
    break;
  }
  console.log(i);
}   (1,2,3,4,6)

思考2:

1. 求1-100之间不能被7整除的整数的和(用continue)
2. 求200-300之间所有的奇数的和(用continue)

var sum = 0;

for (var i = 200; i <= 300; i++) {

if (i % 2 == 0) {

continue;

}

sum = sum + i;

}

console.log(sum);


3. 求200-300之间第一个能被7整数的数(break)

1.6. 总结

  1. 循环有很多种,但是以后用得最多的是for循环
  2. 当不明确循环次数的时候,可以使用while循环
  3. 当无论如何都要执行一次代码的时候,可以使用do..while循环。
  4. 循环可以相互替代。

2. 数组

所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。

思考:

为什么要有数组?
1. 我们知道,一个变量能够存储一个值,当我们想要存储多个值的时候,就可以使用数组。比如存储一个班级里面所有学生的姓名。
2. 使用数组可以对多个相同类型的值统一的管理,存储起来方便,操作的时候也会很方便。

2.1. 创建数组

在javascript数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整。

通过构造函数创建数组

var arr = new Array();//创建了一个空数组
var arr = new Array("zs","ls","ww");//创建了一个数组,里面存放了3个字符串
var arr = new Array(1,2,3,4);//创建了一个数组,里面存放了4个数字
var arr = new Array(5);//长度为5的数组

通过数组字面量创建数组

var arr1 = []; //创建一个空数组
var arr2 = [1, 3, 4]; //创建一个包含3个数值的数组,多个数组项以逗号隔开
var arr3 = ["a", "c"]; // 创建一个包含2个字符串的数组

2.2. 数组的下标与长度

数组的下标:数组是有序的,数组中的每一个元素都对应了一个下标,下标是从0开始的

var arr = ["zs", "ls", "ww"];
arr[0];//下标0对应的值是zs
arr[3];//下标3对应的值是ww

数组的长度:跟字符串一样,数组有一个length属性,指数组中存放的元素的个数。

var arr = ["zs", "ls", "ww"];
arr.length;//这个数组的长度是3
//空数组的长度是0

下标与长度的关系:最大的下标 = length - 1

2.3. 数组的赋值与取值

数组的取值

//格式:数组名[下标]
//功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。
var arr = ["red", "green", "blue"];
arr[0];//red
arr[2];//blue
arr[3];//这个数组的最大下标为2,因此返回undefined

数组的赋值

//格式:数组名[下标] = 值;
//如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = ["red", "green", "blue"];
arr[0] = "yellow";//把red替换成了yellow
arr[3] = "pink";//给数组新增加了一个pink的值

思考:如何给一个数组增加新的元素?

1. 把1-100之间所有的数,放到数组中

var arr = new Array();

for(var i = 1;i <= 100;i++ ){

//     arr[i-1] = i;

arr.push(i);

}

console.log(arr);

2. 把1-100之间所有的奇数,放到数组中

var arr = [];

for(i = 1;i <= 100;i++){

if(i % 2 !=0){

//      arr[arr.length] = i;

arr.push(i);

}

}

console.log(arr);

3. 把1-100之间能被3整数的数字,存到数组中

var arr = [];

for(i = 1;i <= 100;i++){

if(i % 3 == 0){

//      arr[arr.length] = i;

arr.push(i);

}

}

console.log(arr);

2.4. 数组的遍历

遍历:遍及所有,对数组的每一个元素都访问一次就叫遍历。

数组遍历的基本语法:

for(var i =0; i < arr.length; i++) {
    //数组遍历的固定结构
}

思考1:

var arr = [298, 1, 3, 4, 6, 2, 23, 88,77,44];
1 求一组数中的所有数的和跟平均值

var sum = 0;

for(i = 0 ;i < arr.length;i++){

sum = sum + arr[i];

}

console.log(sum);

console.log(sum / arr.length);

2 求一组数中的最大值

var max = arr[0];

for(i = 0 ;i < arr.length;i++){

if(arr[i] > max){

max = arr[i];

}

}

console.log(max);

3 求一组数中的最小值和最小值所在的位置

var min = arr[0];

var index = 0;

for(i = 0 ;i < arr.length;i++){

if(arr[i] < min){

min = arr[i];

index = i;

}

}

console.log(min);

console.log(index);


4 求一组数中的最大值和最小值以及所在位置

var arr = ["a", "bb", "ccc", "dddd"];

//    var arr1 = [];

//    for (var i = arr.length - 1; i >= 0; i--) {

//        arr1.push(arr[i]);

//    }

//    console.log(arr1);

思考2:

var arr = ["a", "bb","ccc","dddd"];
1 将字符串数组用|或其他符号分割

var arr = ["a", "bb", "ccc", "dddd"];

var str = "";

for(i = 0;i < arr.length; i++){

if(i == arr.length - 1){

str = str + arr[i]

}else{

str = str + arr[i] + "|";

}

}

console.log(str);


2 有一个字符串数组,求字符串数组中每项的长度,并把长度的数值存储到新的数组中

var arr = ["a", "bb", "ccc", "dddd"];

var len = 0;

var arr1 = [];

for(i = 0; i < arr.length; i++){

arr1.push(arr[i].length);

}

console.log(arr1);


3 将数组中值为0的项去掉,将不为0的值存入一个新的数组

var arr = [1, 0, 0, 2, 6, 8, 0, 10, 0, 22];

var arr1 = [];

for(var i = 0; i < arr.length; i++){

if(arr[i] != 0){

arr1.push(arr[i]);

}

}

console.log(arr1);


4 让一个数组倒叙保存另一个数组中的每一项( 倒着遍历)

3. 冒泡排序

  1. var arr = [65, 97, 76, 13, 27, 49, 58]

    var ci = 0;

    var tang = 0;

    for (var i = 0; i < arr.length - 1; i++) {

    tang++;

    for (var j = 0; j < arr.length - 1 - i; j++) {

    ci++;

    if (arr[j] > arr[j + 1]) {

    var temp = arr[j + 1];

    arr[j + 1] = arr[j];

    arr[j] = temp;

    }

    }

    }

    console.log(arr);

    console.log(ci);

    console.log(tang);

    2.完成版本

    var arr = [65, 97, 76, 13, 27, 49, 58];

     var ci = 0;

    var tang = 0;

    for (var i = 0; i < arr.length - 1; i++) {

     var flag= true;

    tang++;

      for (var j = 0; j < arr.length - 1 - i; j++) {

          if (arr[j] > arr[j + 1]) {

              var temp = arr[j];

             arr[j] = arr [j + 1];

              arr[j + 1] = temp;

              flag= false;

          }

          ci++;

         }

           if (ygs == true) {

              break;

           }

      }

console.log(arr);

console.log(tang);

console.log(ci);

【数组去重】

var arr = [1, 2, 3, 5, 6, 7, 2, 3, 54, 645, 64, 23, 42, 342, 4, 24, 23, 42, 42, 42];

var newArr = [];

var ci = 0;

var tang = 0;

for (var i = 0; i < arr.length; i++) {

//需要判断arr[i] 在newArr中是否存在

var flag = true;//假设不存在

tang++;

for (var j = 0; j < newArr.length; j++) {

if (arr[i] == newArr[j]) {

flag = false;

}

ci++;

}

if (flag) {

newArr.push(arr[i]);

}

}

console.log(ci);

console.log(tang);

console.log(newArr);

【计算一个数是几位数】

var num = +prompt("请输入一个数字");

//1   1/10=0.1  = 0

//21  21/10=2/10 = 0

//321 321/10 = 32/10 = 3/10 = 0

//count用来记录位数

var count = 0;

while(num != 0){

num = parseInt(num/10);

count++;

}

console.log(count);

【将12345转换成54321】

var num = +prompt("请输入一个数字");

//12345

var str = "";

while(num != 0){

var yu = num%10;

str = str + yu;

num = parseInt(num/10);

}

console.log(+str);

原文地址:https://www.cnblogs.com/pavilion-y/p/8136263.html

时间: 2024-10-21 02:32:50

循环语句和数组的相关文章

java基础3_循环语句,数组

java中的循环: Java中提供了3中循环结构:  while  do-while  for ① 循环结构的作用? 可以不断重复执行循环结构中的代码: ② 上面的3个循环结构功能都是一样的,只是结构不一样: ③ 循环的次数的控制 ④ 多种循环结构的语法以及执行流程: ⑤ 能够区分每一种的特点,知道如何选择 while语法: while(条件){ // 循环体,需要重复做的事情的代码 } 执行流程: 上面的这个循环结构可能会执行n次循环 第一次  : 条件(true) ---> 执行一次循环体:

java循环语句与数组学习

赋值运算符的基本用法 赋值运算符有哪些: =, +=,-=,*=,/=,%= a+=1等价于a=a+1,-=同理 注意事项: 1.基本的赋值运算符:= 把=右边的数据赋值给左边. 2.扩展的赋值运算符:+=,-=,*=,/=,%= 举例说明 a+=1等价于a=a+1,其他同理 3.赋值运算符要求左边的数据必须是一个变量 关系运算符 关系运算符有哪些: == ,!= , < , > , <= , >= , instanceof 注意事项: 无论你的操作是简单还是复杂,结果是boole

foreach循环语句

一.foreach循环语句介绍: 1.格式: for(类型 变量名称:被遍历数组或集合){ 其他操作(输出操作) } 2.作用: 主要是用于简化书写 二.foreach循环语句遍历数组: public class oneHundredAndEight_oneHundredAndNine { public static void main(String[] args) { String[] names = {"萌萌","纯纯","爱爱","

Swift中的循环语句

循环语句能够使程序代码重复执行.Swift编程语言支持4种循环构造类型:while. do while.for和for in.for和while循环是在执行循环体之前测试循环条件,而do while是在执行循环体之后测试循环条件.这就意味着for和while循环可能连一次循环体都未执行,而do while将至少执行一次循环体.for in是for循环的变形,它是专门为集合遍历而设计的.一.while语句while语句是一种先判断的循环结构,格式如下:while 循环条件 {    语句组 }wh

Shell编程之case多分支语句、循环语句(for、while等)、Shell函数、Shell数组

case多分支语句 case语句的结构: 针对变量的不同取值,分别执行不同的命令列 case 变量值 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; ..... *) 默认命令序列 esac 示例: 字符类型识别: 提示用户输入一个字符: 判断出该字符是字母.数字或者其他字符. 脚本如下: [[email protected] opt]# vim test01.sh #!/bin/bash read -p "请输入一个字符:" key case $key in [a-z]

理论+实操:shell之case语句for/while/until循环语句、函数、数组-满满的干货

前言: 单引号表示纯符号 用双引号表字符串 case多分支语句 循环语句 for循环语句 while循环语句 until循环语句 shell函数 shell数组 一 : case语句的结构 1.1 case结构 多分支表现形式:if语句,case语句 case 语句可以使用正则表达式,正则表达式后面会去阐述 针对变量的不同取值,分别执行不同的命令程序 case 中::表示一句话的结束 如果匹配某一个固定值,大多数用caes,其适用于某一个固定值 如果匹配某一个区间范围,大多数用if else 语

js种的循环语句

1 //js种的循环语句 2 //while与do while的区别是while是满足条件后才执行 3 //do while是不管满不满足条件都会执行一次 4 //for 循环与while,do while相比循环结构更加清晰 5 6 //while 循环 7 var a=0; 8 while(a<=5){ 9 a++; 10 console.log(a);//输出1...6 11 12 } 13 14 //do while 循环 15 var b=0; 16 do{ 17 console.lo

Swift流程控制之循环语句和判断语句详解

Swift提供了所有c类语言的控制流结构.包括for和while循环来执行一个任务多次:if和switch语句来执行确定的条件下不同的分支的代码:break和continue关键字能将运行流程转到你代码的另一个点上. 除了C语言传统的for-condition-increment循环,Swift加入了for-in循环,能更加容易的遍历arrays, dictionaries, ranges, strings等其他序列类型. Swift的switch语句也比C语言的要强大很多. Swift中swi

10. Poweshell - 循环语句

PowerShell 循环语句 介绍 for (初值;表达式;赋值语句) {代码}      用变量值控制执行次数 foreach (成员变量 in数组) {代码}   利用迭代执行代码 foreach-object                                                 对一组输入的每个对象执行运算 while(表达式) {代码}                            表达式为真时循环执行代码 do {代码} while(表达式)