JS 循环练习

Posted 张凯::get("新技能")

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 循环练习相关的知识,希望对你有一定的参考价值。

规律   大范围套小范围   循环   分支语句   switch case 嵌套  死循环 while(true)  打破循环   break    continue    while(true)

1.折纸:折多少次和珠穆朗玛峰一样高 1.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米

var hou = 0.0001;
    var cishu = 0;
    for(var i=0;i>=0;i++)
    {
        hou = hou*2;
        if(hou>8848)
        {
            cishu = i+1;
            break;
        }
    }
    alert(cishu);
View Code

2.有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问8个月后有多少对兔子,幼兔、小兔、成兔对数分别是多少。

幼兔 1 小兔 0       成兔 0  初始值 幼兔 0 小兔 1 成兔 0  第一个月 幼兔 1 小兔 0 成兔 1  第二个月 幼兔 1 小兔 1  成兔 1  第三个月 幼兔 2 小兔 1 成兔 2  第四个月 幼兔 3 小兔 2 成兔 3  第五个月 幼兔 5 小兔 3 成兔 5  第六个月

当前月份幼兔 = 上个月的成兔+上月小兔 当前月份小兔 = 上月幼兔 当前月份成兔 = 上月成兔+上月小兔

这个题重点注意  把这个月的兔子复制给上个月过程         也可以和上面题一样  直接上个月和这个月兔子用统一名称表示

    
    var prevyou = 1;
    var prevxiao = 0;
    var prevcheng = 0;
    
    var nowyou = 0;
    var nowxiao = 0;
    var nowcheng = 0;
    
    for(var i=0;i<10;i++)
    {
        //该月份的兔子数量
        //当前月份幼兔 = 上个月的成兔+上月小兔
        nowyou = prevxiao+prevcheng;
        //当前月份小兔 = 上月幼兔
        nowxiao = prevyou;
        //当前月份成兔 = 上月成兔+上月小兔
        nowcheng = prevcheng+prevxiao;
        
        
        //把当前月份的数量转化为上个月的
        prevyou = nowyou;
        prevxiao = nowxiao;
        prevcheng = nowcheng;
        
    }
    
    alert(nowyou);
    alert(nowxiao);
    alert(nowcheng);
兔子问题

3.羽毛球拍15元,球3元,水2元。200元每种至少一个,有多少可能

羽毛球拍最多买13个  球最多买66个  水最多买100个

var sl=0;
    for(var i=1;i<14;i++)
    {
        for(var j=1;j<67;j++)
        {
            for(var k=1;k<101;k++)
            {
                if(i*15+j*3+k*2==200)
                {
                    sl++;
                }
            }
        }
    }
    
    alert(sl);
购买方法

4.括号里面只能放加或减,如果要使等式成立,括号里面应该放什么运算符 12()34()56()78()9 = 59

1+2   1+  +1*2 5-10  5+  -1*10   (注意 :灵活运用1和-1  加25可以看作+1*2 5   减25可以看作+(-1)*2 5;同理乘除也一样)

循环未必是多次 可能只循环两次 也可能只循环1次  如下

for(var i=-1;i<2;i=i+2)
    {
        for(var j=-1;j<2;j=j+2)
        {
            for(var k=-1;k<2;k=k+2)
            {
                for(var l=-1;l<2;l=l+2)
                {
                    if(12+i*34+j*56+k*78+l*9==59)
                    {
                        alert(i+"|"+j+"|"+k+"|"+l);
                    }
                }
            }
        }
    }
加减的不同表达方法

 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------

数组: 数组长度  .length

 强类型语言 ,同一种类型的数据存取的集合(在内存中是连续的)  在定义时必须指定长度
 弱类型语言: 可以存储任意类型的数据,在内存中不连续【可以随时往里填随时往外移除】
 弱类型语言中得集合相当于强类型语言中的 集合

数组的书写格式

1.var str=new array();  空的数组

数组的添加:

       str[0]=r;

       str[1]=7;

      str[2]=8;

数组提取和添加相同;

2.数组格式2。

var str2=new Array(1,e,3,6);

数组提取

str[1]=e;

数组修改

str[1]=p;

 

3.数组格式3

var str2=["a","b","c"];

【如果存入内容是字符串 (非数值)必须加双引号;无论强类型还是弱类型字符串和上引号不分开】

4.输出整个数组:遍历集合  或者 循环   js中遍历集合只有for的形式如下

var attr5=[1,2,3,4,5,6];
	 for(var i=0;i<attr5.length;i++)
	 {
		 alert(attr5[i]);
		 }

jS中得遍历集合 与强类型语言 不同之处1.弱类型语言中用 for 强类型语言中用foreach  2.弱类型输出的a是索引 强类型语言输出的是具体的值

 for(var a in attr5)
     {
         alert(atter5[a]);
         }

 

 

 

以上是关于JS 循环练习的主要内容,如果未能解决你的问题,请参考以下文章

JS 循环练习

JS练习--嵌套列表(for循环)

for循环练习+js数组

[Day03] 循环语句list相关练习题

js部分---for循环练习题

常用python日期日志获取内容循环的代码片段