JS基础03

循环

学习笔记

  • 循环
  • 小概
    • 1. while 循环
      • 1.1 do-while循环
    • 2. for循环
      • 2.1三种循环的应用场景
    • 3. break和continue关键词介绍
    • 4 不确定循环次数案例
  • 总结


小概

今日的学习内容:1.while结构循环,do-while循环, 2.for循环 ,3.break和continue关键字,

1. while 循环

程序流程控制
1.顺序结构(默认) : 从上往下顺序依次执行
2.分支结构 : 代码根据条件执行(if switch-case…)
3.循环结构 : 代码重复的执行(今天的)

语法:

while( 条件 true/false ){
循环体 : 需要重复执行的代码
};
执行规则:
1.判断小括号条件是否成立
1.1 成立:执行循环体代码
1.2 不成立 : 循环结束。 执行大括号后面的代码
2.重复步骤1

//(1)声明一个变量记录循环的次数
let num = 1;
//(2)循环条件
while( num <= 3 ){
     
    console.log('好好学习,天天向上');
    num++;//(3)循环变量自增
};
console.log('我写完了');

小结:

1.循环三要素: 循环变量循环条件循环体
2.小括号条件可以写哪些代码
2.1 关系表达式: 结果是布尔类型
2.2 直接写布尔类型值 true/false
2.3 其他的值 : 编译器会自动转成布尔类型判断是否成立

1.1 do-while循环

语法:

do{
循环体代码
}while(条件);
执行规则
0.循环体无条件执行一次
1.判断条件
1.1 成立:执行循环体代码
1.2 不成立,循环语句结束
2.重复步骤1

		let num = 1;
		do{
     
		    console.log('我会先执行一次再判断是否执行');
		    num++;
		}while( num > 10);
//例子
		let username = null;
        let password = null;
        do{
     
            username = prompt('请输入账号');
            password = prompt('请输入密码');
        }while(
            username != 'admin' ||  password != '123456'
        );

区别:while与do-while的区别是,while有可能一次循环都不执行,但是do-while则会先执行一次循环体,再判断(true or false)是否循环、

2. for循环

语法:

for(语句1;语句2;语句3){
循环体代码
};
执行规则
1.执行语句1(声明循环变量)
2.判断语句2是否成立 (循环条件)
2.1 成立:执行循环体代码。 然后执行语句3(循环变量自增)
2.2 不成立,循环语句结束,执行大括号后面的代码
3.重复步骤2

案例:求1-10之和

//1.声明变量存储结果
let sum = 0;
//2.遍历堆数
for(let i = 1;i <= 10 ;i++){
     //i = 1 2 3 4 5 6 7 8 9 10
    //3.依次累加
    sum += i
};
console.log( sum );//55

2.1三种循环的应用场景

原则上,三种循环结构语法可以互通的。只是每一种循环应用场景不同
1.for循环(最常用) : 适用于循环次数固定
2.while循环 : : 适用于循环次数不固定
3.do-while循环 : 适用于循环次数不固定,循环体无条件执行一次


3. break和continue关键词介绍

  • break关键字 :结束整个循环语句,立即执行大括号后面的代码
    break可以用于三种循环语句 + switch-case
  • continue关键字 :结束当前循环体,立即进入下一次循环判断

上代码:

//需求 : 吃10个包子,一口吃1个
for(let i = 1;i<=10;i++){
     
    //break关键字 : 吃到第五个包子,吃饱了。 后面所有的包子都不吃了。
    // if( i == 5 ){
     
    //     console.log('吃到第五个包子,吃饱了');
    //     break; 
    // };
    
    //continue关键字 : 吃到第五个包子,吃到虫子。第五个包子不吃,但是没有饱其他包子继续吃
    if(i == 5){
     
        console.log('吃到第五个包子有虫子,不吃了');
        continue;  //后面的循环体不执行,直接进入下一次循环判断
    };
    console.log(`我在吃第${
       i}个包子`);
};
console.log('我吃完了');        
  • 区别:break是直接跳出整个循环(就近原则),而continue是不执行后面的代码了跳到判断循环条件(true就接着循环/false结束循环)。

4 不确定循环次数案例

  • 猜谜游戏
/* 
需求: (1)生成1-100随机幸运数字
(2)让用户输入数字 : 猜这个数字,直到猜对为止
    猜大了:提示用户猜大了,继续猜
    猜小了:提示用户继续猜
    猜对了 : 提示用户猜对的。
*/
/* 循环次数不固定
(1)人为写一个死循环
(2)需求实现,使用break来结束循环
 */
let lucky = Math.ceil( Math.random()*100 );
        
//(1)人为写一个死循环
while(true){
     
    let num = +prompt('请猜我的幸运数字');
    if( num > lucky ){
     
        alert('猜大了,继续');
    }else if(num < lucky){
     
        alert('猜小了,继续');
    }else{
     
        alert(`恭喜你猜对了,我的幸运数字是${
       lucky}`);
        //(2)需求实现,使用break来结束循环
        break;
    };
};
  • 站队(穷举)
//需求:有一个班,如果3个人站一排多出1个人,如果4个人站一排多出2个人,如果5个人站一排多出3个人
//请问这群人有多少人
/*穷举 : 从1到无穷大,找出符合条件的数字 
        
 */
for (let i = 1; i < Infinity; i++) {
     
    if (i % 3 == 1 && i % 4 == 2 && i % 5 == 3){
     
        console.log(i);//58
        break;
    };
};

总结

明确 :循环变量、循环条件、循环体。

每日一抑云:机场比婚礼见证了更多真挚的亲吻, 医院的墙壁比教堂聆听了更多的祷告, 那些我们以为错误的地方,也许才是真实的世界。

你可能感兴趣的:(js基础,javascript)