javascript_day04-------->js中循环的使用练习,还有关于判断的补充;质数判断;循环嵌套;打印三角形;九九乘法表等。

本文深入探讨了编程中的循环语句,包括while、for、do...while等,以及三目运算符的使用。通过实例展示了如何判断闰年、质数,并讲解了break和continue在优化循环性能中的作用。此外,还介绍了循环的嵌套、打印图形(如三角形)的技巧,并提供了循环的特殊语法和死循环的实现。最后,通过实际问题如找出100以内的奇数和质数,进一步巩固了循环和条件判断的知识应用。

        今天的学习内容主要以循环为主,主要锻炼以计算机角度出发来帮助解决一些典型的数学问题,做到锻炼个人逻辑思维能力。

1.判断知识点补充

1.   ,(英文逗号)

        var a , b;

        打印多个值 console.log(a , b)

2.  . (点)

        对象才有

3. ()

        函数

        优先级

        if()

        switch()

4. {}

        代码块

5.关于if和switch中的简写

        代码块中只有一句话的时候,可以省略大括号

        if() 只有一条语句,可以省略大括号

        switch case 只有一条语句,可以省略大括号

    var a = 2 ;
    var b = 10;
    var c;
    //if(a>b) {
    //    c = a ;  
   // }
   // else {
    //    c = b ;    
   // }
   
   a > b ? c = a : c = b ;
   console.log(c); 

2.三目运算符

三目运算符:

        条件?表达式1:表达式2

        条件成立就执行表达式1,条件不成立就        执行表达式2

        三目运算符是双分支的简易写法

    var a = 2 ;
    var b = 10;
    var c;
    //if(a>b) {
    //    c = a ;  
   // }
   // else {
    //    c = b ;    
   // }
   
   a > b ? c = a : c = b ;
   console.log(c); 

3.循环语句

        变量初始值

        while(条件){

                        循环做的事情

                        变量产生的变化

        }

        初始值只读一次

        判断条件,循环,变量变化

        .......

        for(变量初始值;循环的条件;变量变化){

                循环要做的事情

                }

        do while 先做后判断

        do {

         }while(条件)

    //while有可能一次也不会执行
    var i = 0 ;
    while(i < 0) {
    	console.log(666);
     	i++;            
    }
    
    //do while 至少会执行一次
    var i = 0 ;
    do {
    	console.log(666);
     	i++;            
    } while(i < 0)

4.闰年加换行

 
 		 // 1000-2000之间的闰年
        // 每10个换行   计数
       var count = 0;
       for(var y = 1000; y <= 2000 ; y++){
           if(y % 4 === 0 && y % 100 !== 0 || y % 400 === 0) {
                    document.write(y);
                    count++;
                    if( count % 10 === 0 ){
                         document.write('<br>');                     
                  }       
          }        
       }
        

        将count计数换一种判断加换行

        var count = 0;
        for(var y = 1000; y <= 2000 ; y++){
              if(y % 4 === 0 && y % 100 !== 0 || y % 400 === 0) {
                             document.write(y);
                             count++;
                             //当要统计的数量发生变化时,才做判断
                             if( count == 10 ){
                                 document.write('<br>'); 
                                 count = 0 ;                    
                             }       
               }        
         }    

5.质数的判断

        质数:只能被1和自己整除

        合数: 除了1和自己以外还能被其它数整除

        121        

        121 % 2

        121 % 3

        121 % 4

              ...

         121 % 120

        var n = 121 ;
        // if(n % 2 !== 0 && n % 3 !== 0 &&)
        // 只要能被整除,一定不是质数
        // 但是要除完了才知道是不是质数
        // for(var i = 2 ; i < 121 ; i++) {
        //     if(n % i === 0) {
        //         alert('不是质数')
        //     }
        //     else {
        //         alert('是质数')
        //     }
        // }
        
       //  假设法
    	//   假设是一个质数
     	 var flag = true ;
       
        for(var i = 2 ; i < 12 ; i++) {
            if(12 % i === 0) {
                flag = false ;
            }
        }
        if(flag === true) {
            alert('是质数')
        }
        else {
            alert('不是质数')
        }
      	

7.break 和 continue

        优化性能

        break 结束整个循环

        continue 结束本次循环,下次循环继续

        // for(var i = 0 ; i < 10 ; i++) {
        //     console.log(i);
        //     if(i === 3) {
        //         break;
        //     }
        // }
        
        // for(var i = 0 ; i < 10 ; i++) {   
        //     if(i === 3) {
        //         continue;
        //     }
        //     console.log(i);
        // }
        
        var n = 12 ;
        //假设是一个质数
        var flag = true ;
        //找到他不是的证据
        for(var i = 2 ; i<= n / 2 ; i++ ){
            if(n % i === 0 ) {
               flag = false ;
               // 如果找到了一个能被整除的数,表示这个数已经不是质数了,也就是知道了最终的结果,就不需要继续循环了
                
               break ;             
            }        
        }
        
        // if(flag) {
       //    	alert('是一个质数');        
       // }
       //	else{
       //     alert('不是一个质数');       
       // }
       
       flag ? alert('是') : alert('不是') ;

8.质数的判断(优化break)

         for(var i = 0 ; i < 10 ; i++) {
             document.write('*');
             if(i === 3) {
                 break;   // 直接结束整个循环,i = 3
             }
         }
         console.log(i); 

如果循环提前结束,是因为找到了能被整除的数  --  说明不是质数

如果循环正常结束,因为没有找到被整除的数   --  说明是质数

        var n = 7 ; 
        for(var i = 2 ; i < n ; i++) {
            if(n % i === 0) {
                break ;
            }
        }
        console.log(i);
        if(i === n) {
            alert('是')
        }
        else {
            alert('不是')
        }
        
        
        var count = 0;
        for(var i = 2 ; i < n ; i++) {
            if(n % i === 0) {
                count++ ;
                break ;
            }
        }

9.循环的嵌套

        外层循环走一下,内层循环走一圈    时针和分针的关系

        // ****
        // ****
        // ****
        // ****
        // 外层 i 控制打印的行数
        for(var i = 0 ; i < 4 ; i++) {
            // 内层j控制打印*的个数
            for(var j = 0 ; j < 4 ; j++) {
                document.write('*');
            }
            document.write('<br>');
        }
        
        
        // i = 0 ;
        //     j = 0 
        //     j = 1
        //     j = 2 
        //     j = 3
        // i = 1 ;
        //     j = 0 
        //     j = 1
        //     j = 2 
        //     j = 3
        // i = 2 ;
        //     j = 0 
        //     j = 1
        //     j = 2 
        //     j = 3
        // i = 3 ;
        //     j = 0 
        //     j = 1
        //     j = 2 
        //     j = 3

10.打印三角形

        // *
        // **
        // ***
        // ****
        // *****
        // i 控制行数
        for(var i = 0 ; i < 5 ; i++) {
            // 打印星星,星星的个数跟行数一样
            for(var j = 0 ; j <= i ; j++) {
                document.write('*')
            }
            // 打印换行
            document.write('<br>')
        }
        
        //倒三角
        // *****
        // ****
        // ***
        // **
        // *
        for(var i = 0 ; i < 5 ; i++) {
            for(var j = 0 ; j < 5 - i ; j++){
            // for(var j = 5 - i ; j > 0 ; j--) {
                document.write('*')
            }
            document.write('<br>')
        }
        
        // *****
        //  ****
        //   ***
        //    **
        //     *
        
        // 11111
        // 21111
        // 22111
        // 22211
        // 22221
        for(var i = 0 ; i < 5 ; i++) {
            for(var j = 0 ; j < i ; j++) {
                document.write('&nbsp;');
            }
            for(var k = 0 ; k < 5 - i ; k++) {
                document.write('*');
            }
            document.write('<br>')
        }

12.循环的练习

        // 100-200之间被3和7整除
        var count = 0 ;
        for(var i = 100 ; i <= 200 ; i++) {
            // console.log(i);
            // 找到满足条件的数
            if(i % 3 === 0 || i % 7 === 0) {
                document.write(i + '&nbsp;');
                count++ ;
                if(count % 5 === 0) {
                    document.write('<br>') ;
                }
            }
        }
        
        // 10的阶乘   1*2*3*4*5...*10
        // 1*2=2
        // 2*3=6
        // 6*4=24
        // 24*5=120
        // ...
        var jc = 1 ;
        for(var i = 1 ; i <= 100 ; i++) {
            // jc = jc * i ;
            jc *= i ;
        }
        console.log(jc);
        
        // 100以内所有的数求和  1+2+3+4+5+...+100
        var sum = 0 ;
        for(var i = 1 ; i <= 100 ; i++) {
            sum += i ;
        }
        console.log(sum);

13.循环的特殊语法

        // while 
        // var i = 0 ;
        // while(i < 10) {
        //     console.log(666);
        //     i++ ;
        // }
        // for(;;)
        // for(;;) {
        //     console.log(666);   // 最简单的死循环
        // }
        
        // 把for语句改写成while的形式,但是注意分号不能省
        var i = 0 ; 
        for( ; i < 10 ; ) {
            console.log(666);
            i++ ;
        }
        // for 第一个分号前面的代码只会执行一次,因此可以声明多个变量
        for(var i = 0 , count = 0 ; i < 100 ; i++) {
            if(i % 2) {
                document.write(i + '&nbsp;')
                count++;
                if(count % 10 === 0) {
                    document.write('<br>')
                }
            }
        }

14.死循环

        for 执行的效率更高一点,一般情况都使用for

        for 倾向于已知循环次数        for(;;)

        while 一般条件复杂(死循环)    while(true)

        do while 至少执行一次

        // for(;;){}
        
        // for(var i = 0 ; ; i++) {
        //     console.log(i);
        //     if(i === 9) {
        //         break;
        //     }
        // }
        
        // var i = 0 ;
        // while(true) {
        //     console.log(666);
        //     i++ ;
        //     if(i === 10) {
        //         break;
        //     }
        // }
        
        // 产生100以内的随机整数,要多少次才能生成0
        var count = 0
        for(; ;) {
            var n = Math.round(Math.random() * 100) ;
            count++ ;
            if(n === 0) {
                break;
            }
        }
        console.log(count);
        
        var count = 0 ;
        while(true) {
            var n = Math.round(Math.random() * 100) ;
            count++ ;
            if(n === 0) {
                break;
            }
        }
        console.log(count);

15.100以内的奇数

         100以内满足条件的数        

         遍历100以内所有的数        

         找到满足条件的那一个        

         找到奇数

        for(var i = 0 ; i <= 100 ; i++) {
            if(i % 2) {
                console.log(i);
            }
        }
        // 同时被3和7整除
        for(var i = 1 ; i <= 100 ; i++) {
            if(i % 3 === 0 && i % 7 === 0) {
                console.log(i);
            }
        }

16.100以内的质数

        输出100以内所有的质数

        2 3 5 7 ...        

        var count = 0 ;
        for(var i = 2 ; i <= 100 ; i++) {
            // 判断i是不是质数
            // 假设法
            var flag = true ;
            for(var j = 2 ; j < i ; j++) {
                if(i % j === 0) {
                    flag = false ;
                    break ;
                }
            }
            // 根据flag判断是不是质数
            if(flag) {
                document.write(i + '&nbsp;&nbsp;');
                count++ ;
                if(count % 5 === 0) {
                    document.write('<br>')
                }
            }
        }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值