三、循环结构1
1.var let const
使用var关键字定义的变量,变量名可以重复,后面的变量会将前面的变量覆盖。
var方式定义的变量,会统一提升到作用域的顶端定义,然后再在指定的地方赋值。
var定义的变量,即使在指定的代码块中,仍然会提升到全局作用域的顶端。
<script>
var a = 10;
console.log(a); //10
var a = 20;
console.log(a); //20
console.log(b); //undefined
var b = 20;
console.log(c); //undefined
if (true) {
var c = 30;
console.log(c); //30
}
</script>
<script>
let d = 10;
console.log(d);
// let d = 10; //使用let,在同一个作用域中,不能定义同名的变量。
// console.log(e); //报错Cannot access 'e' before initialization
// let定义的变量,不存在提升。
let e = 100;
// console.log(f); //报错 f is not defined at
if (true) {
let f = 200;
console.log(f);
}
</script>
因为使用var定义变量,存在上面的各种问题,所以从ES6开始,又引入的新的方式定义变量。
使用let,在同一个作用域中,不能定义同名的变量。
let定义的变量,不存在提升。
const关键字,用于定义常量,常量的特点是:不能重新赋值,并且在定义时,必须要赋值。
2.模板字符串
使用 '' 和 "" 定义的数据是字符串数据
console.log('大家好!我叫'+name+',今年'+age+'岁,性别是'+gender+',职业是'+job);
在ES6中,又加入 `` ,在反引号里面,可以定义模板字符串,方式是${变量名}
console.log(`大家好!我叫${name},今年${age}岁,性别是${gender},职业是${job}`);
如果字符串采用""包裹,里面可以定义''
如果字符串采用''包裹,里面可以定义""
如果希望我们定义的字符串中,既包括双引号,又包括单引号,过去是采用转义字符的方式定义的。
转义字符串:\" 表示 " \' 表示 '
console.log("\'大家好\'!\"才是真的好\"!");
现在可以直接在模板字符串中使用双引号和单引号
console.log(`'大家好'!"才是真的好"!`);
转义字符的其他用法
\t 表示水平制表符,其实就是一个Tab键
\n 表示换行符,其实就是一个Enter键
\\\\表示一个\\
3.while循环
//()里面是循环的条件,条件成立,执行{}里面的操作
while(条件){
操作
}
// 打印10行:好好学习,天天向上
// 定义循环变量
let i = 1;
// ()里面是循环的条件,条件成立,执行{}里面的操作
while (i <= 10) {
console.log(`第${i}行,好好学习,天天向上`);
// 注意:在while循环体中,必须对循环变量重新赋值,否则会死循环。
i++;
}
console.log('end');
练习题1:找出100以内,能被3整除的数,并输出
练习题2:找出21世纪里面所有的闰年,并打印出来
练习题3:输入年 月 日,算出该日期是全年的第多少天
4.do-while循环
do{
操作
}while(条件)
while循环的特点是:先判断条件,再执行循环操作
do-while循环的特点是:先执行一次循环操作,再判断循环条件
所以,do-while循环,没有入口判断,无论循环条件是否满足,至少会执行一次循环体
练习题1:系统菜单:输入 1.添加学生,2.修改学生,3.查询学生,4.删除学生,0.退出系统
练习题2:小型ATM机系统
5.作业
打印输出3位数里面所有的水仙花数,百位数的3次方+十位数的3次方+个位数的3次方===这个数
输入你的出生年月日,再输入当前日期的年月日,计算出你一共活了多少天
输入一个指定的日期,输出该日期是星期几,提示:1900-1-1是星期一
四、循环结构2
1.for循环
for(条件变量;循环条件;迭代部分){
操作
}
for循环,就是由while循环演变而来
在for循环,可以将循环的条件变量,判断条件,对象循环变量重新赋值,放在一起,好处是不容易遗漏任何一部分
for循环结构中的循环变量可以定义多个
while,do-while,for,如何选择:
当循环的次数是固定的时候,通常使用for循环
当循环的次数不固定的时候,通常会使用while和do-while循环
2.循环的跳出语句(continue,break)
在循环结构中break,表示跳出整个循环
在循环结构中continue,表示跳出本次循环
练习题1:会员登录,一共有3次登录机会,如果,第一次登录失败,提示失败原因,并告知还剩下几次机会
如果,登录名输入错误,显示信息,并且密码就不需要在输入了
如果,第一次就登录成功,后面的机会就不需要了
练习题2:会员注册,注册会员信息,输入会员号(必须是4位整数),输入姓名,输入性别(只能是男或女)
一共有三次机会,会员信息输入错题,提示错误信息,并显示还有几次机会
练习题3:猜数小游戏,系统随机返回一个1-100之间的数,给5次机会,猜这个数
每次猜的数,要提示用户,猜大了还是猜小了
提示:Math.random()随机返回0到1之间的小数
五、多重循环
在二重循环中,外层循环变量变化一次,内层循环变量变化整个
练习题1:有三个班级,每个班级有四名学生,输入所有学生的成绩,并计算出每个班级的平均分
练习题2:打印直角三角形
练习题3:打印倒直角三角形
练习题4:打印等腰三角形
练习题5:打印99乘法表
练习题6:数字等腰三角形
练习题7:找出100以内所有的质数
在内层循环中,使用continue,break,只是作用于内层循环
练习题1:有5家店,每家店最多可以买3件衣服,进入一家店后,提示是否离开本店,
输入y表示离开(会进入下一家店),输入n表示买一件衣服,最后输出用户一共买了多少件衣服。
作业
鸡兔同笼:有25个头,94只脚,请问鸡和兔各多少只
百钱买百鸡:公鸡5文钱一只,母鸡3文钱一只,小鸡1文钱3只,请问公鸡母鸡小鸡各多少只
打印菱形
打印空心菱形