//1.有三个运算符组成的式子我们成为三元表达式 //2.++num 3+5 ? : //3.语法结构 条件表达式?表达式1:表达式2; //4.执行思路 //如果条件表达式结果为真,则返回表达式1的值,如果条件表达式结果为假,则返回表达式2的值 //5.代码体验 var num = 10; var result = num > 5 ? '是的' : '不是的'; console.log(result);
案例:数字补0
1 2 3 4 5 6
//用户输入0-59之间的一个数字 //如果数字小于10,则在这个数字面前补0,(加0拼接),否则不做操作 //用一个变量接收这个返回值,输出 var time = prompt('请输入一个数字'); var result = time < 10 ? '0' + time : time;//把返回值赋值给第一个变量 alert(result);
//for循环执行相同代码 for(var i = 1; i <= 10; i++){ console.log('我错了'); } //让用户控制输出次数 var num = prompt('输入循环次数'); var(var i = 1; i <= num; i++){ console.log('我错了'); }
1 2 3 4 5 6 7 8 9 10
//for循环可以重复执行不同的代码 因为我们有计数器变量i的存在 i每次循环值都会变化 for(var i = 1; i <= 100; i++){ if(i == 1){ console.log('这个人今年1岁了,他出生了'); } elseif(i == 100){ console.log('这个人今年100岁了,他死了'); } else { console.log('这个人今年' + i + '岁了');//字符串与数字拼接 } }
案例:for循环求1-100累加和案例
1 2 3 4 5 6 7 8 9 10 11
// 需要循环100次,我们需要一个计数器i //需要一个储存结果的变量sum,初始值为0 //核心算法:1+2+3+4+...,sum = sum + i var sum = 0; for (var i = 1; i <= 100; i++) { sum = sum + i; //sum += i; } console.log(sum);
案例:for循环求1-100平均值
1 2 3 4 5 6 7
var sum = 0; var average = 0; for (var i = 1; i <= 100; i++) { sum += i; } average = sum / 100; console.log(average);
案例:求1-100所有奇数和偶数的和
1 2 3 4 5 6 7 8 9 10 11
var even = 0; var odd = 0; for (var i = 1; i <= 100; i++) { if (i % 2 = 0) { even += i; } else { odd += i; } } console.log('1-100之间所有的偶数的和是' + even); console.log('1-100之间所有的奇数的和是' + odd);
案例:求1-100所有能被3整除的数字的和
1 2 3 4 5 6 7
var result = 0; for (var i = 1; i <= 100; i++) { if (i % 3 = 0) { result += i; } } console.log('1-100之前能够被3整除的数字的和是' + result);
案例:求学生成绩案例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
//弹出输入框输入总的班级人数(num) //依次输入学生成绩(保存起来 score),此时用到for循环 //for循环,弹出的次数跟输入的班级总人数有关系,条件表达式 i <= num //进行业务处理:计算成绩,先求总成绩(sum),之后求平均成绩(average) //弹出结果 var num = prompt('请输入班级总人数:'); // num 班级总人数 var sum = 0; // 求和的变量sum var average = 0; // 平均值的变量average for (var i = 1; i <= num; i++) { var score = prompt('请输入第' + i + '个学生成绩'); // 因为从prompt取过来的数都是字符串型的,需要转换成数字型 sum = sum + parseFloat(score); } average = sum / num; alert('班级总成绩是' + sum); alert('班级平均分是' + average);
案例:一行打印5个星星
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
//一行打印5个星星(不能全部显示) for (var i = 1; i <= 5; i++) { console.log('#'); } //如果一行全部展示出星星,采用拼接字符串型 var str = ''; for (var i = 1; i <= 5; i++) { str = str + '#'; } console.log(str); //自定义输出个数 var num = prompt('请输入星星的个数'); var str = ''; for (var i = 1; i <= num; i++){ str = str + '#'; } console.log(str);
「双重for循环」
循环嵌套是指在一个循环语句中再定义一个循环语句的语法结构,例如在for循环语句中,可以再嵌套一个for 循环,这样的 for 循环语句我们称之为双重for循环。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
//1.双重for循环语法结构 for (外层初始化变量; 外层条件表达式; 外层操作表达式) { for (里层初始化变量; 里层条件表达式; 里层操作表达式){ //执行语句 } } //2.我们可以把里面的循环看作是外层循环的语句 //3.外层循环循环一次,里面的循环执行全部 //4.代码验证 for (var i = 1; i <= 3; i++) { console.log('这是外层循环第' + i + '次'); for (var j = 1; j <= 3; j++) { console.log('这是内层循环第' + j + '次'); } }
案例:打印5行5列星星
1 2 3 4 5 6 7 8 9 10 11
//内层循环负责一行打印5个星星 //外层循环负责打印5行 var str = ''; for (var i = 1; i <= 5; i++) { //外层负责打印5行 for ( var j = 1; j <= 5; j++){ // 内层负责一行打印5个星星 str = str + '#'; } //一行打完5个星星需要另起一行,加 \n str = str + '\n'; } console.log(str);
案例:打印n行n列星星
1 2 3 4 5 6 7 8 9 10 11
//打印n行n列 var rows = prompt('请您输入行数'); var cols = prompt('请您输入列数'); var str = ''; for (var i = 1; i <= rows; i++) { for (var j = 1; j <= cols; j++) { str = str + '#'; } str += '\n'; } console.log(str);
案例:打印倒三角
1 2 3 4 5 6 7 8 9 10
//打印倒三角 //核心算法:j = i; j <= 10; j++ var str = ''; for (var i = 1; i <= 10; i++) { //外层控制行数 for (var j = i; j <= 10; j++) { //内层循环打印个数不一样 j = i str = str + ''; } str += '\n'; } console.log(str);
案例:打印九九乘法表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
//九九乘法表 //一共有9行,但每行个数不一样,因此用到双重for循环 //外层for循环控制行数i,循环9次,可以打印9行 //内层for循环控制每行公式 j //核心算法:每一行公式的个数正好和行数一样, j <= i //每行打印完毕都需要重新换行 var str = ''; for (i = 1; i <= 9; i++) { //外层控制行数 for (var j = 1; j <= i; j++) { //内层控制每一行个数 j <= i //1 × 2 = 2 //str = str + '#' str += j + '×' + i + '=' + i * j + '\t'; //字符串拼接 } str += '\t'; } console.log(str);
「while循环」
1 2 3 4 5 6 7 8 9 10 11 12 13
//1.while循环语法结构 (while 当...时候) while (条件表达式) { //循环体 } //2.执行思路,当条件表达式结果为true时,则执行循环体,否则退出循环 //3.代码验证 var num = 1; while (num <= 100) { console.log('循环'); num++; } //4.里面需要添加计数器,初始化变量 //5.里面也需要操作表达式,完成计数器的更新,防止死循环
案例:打印人的一生
1 2 3 4 5
var i = 1; while (i <= 100) { console.log('这个人今年' + i + '岁了'); i++; }
案例:计算1-100整数的和
1 2 3 4 5 6 7
var sum = 0; var j = 1; while (j <= 100) { sum += j; j++; } console.log(sum);
1 2 3 4 5
var message = prompt('你爱我吗'); while (message !== '我爱你') { message = prompt('你爱我吗'); } alert('我也爱你');
「do while循环」
1 2 3 4 5 6 7 8 9 10 11 12
//1.do while语法结构 do { //循环体 } while (条件表达式) //2.执行思路,跟while不同的地方在于,do while先执行一次循环体,然后在判断条件,如果条件结果为真则继续执行循环体,否则退出循环 //3.代码验证 var i = 1; do { console.log('你好吗'); i++; } while (i <= 100); //4.do while循环体至少执行一次
案例:打印人的一生
1 2 3 4 5
var i = 1; do { console.log('这个人今年' + i + '岁了'); i++; } while (i <= 100)
案例:计算1-100所有整数的和
1 2 3 4 5 6 7
var sum = 0; var j = 1; do { sum += j; j++; } while(j <= 100) console.log(sum)
//continue关键字 退出本次循环(当前次循环),继续执行剩余次数循环 for (var i = 1; i <= 5; i++) { if (i == 3) { continue;//只要遇见continue就退出本次循环,直接跳到i++ } console.log('我正在吃第' + i + '个包子'); }
案例:求1-100之间,除了能被7整除之外的整数和
1 2 3 4 5 6 7 8
var sum = 0; for (var i = 1; i <= 100; i++) { if (i % 7 == 0) { continue; } sum += i; } console.log(sum);
1 2 3 4 5 6 7
//break退出整个循环 for (var i = 1; i <= 5; i++) { if (i == 3) { break;//退出整个循环 } console.log('我正在吃第' + i + '个包子'); }
代码规范
标识符命名规范
变量、函数的命名必须要有意义
变量的名称一般用名词
函数的名称一般用动词
操作符规范
1 2 3 4 5 6 7
// 操作符的左右两侧各保留一个空格 for (var i = 1; i <= 5; i++) { if (i == 3) { break; // 直接退出整个 for 循环,跳到整个for循环下面的语句 } console.log('我正在吃第' + i + '个包子呢'); }
单行注释规范
1 2 3 4 5 6
for (var i = 1; i <= 5; i++) { if (i == 3) { break; // 单行注释前面注意有个空格 } console.log('我正在吃第' + i + '个包子呢'); }
其他规范
1 2 3
//关键词 操作符空格 if (true) {} for (var i = 0; i<=10; i++) {}