if(条件){ 语句组; }
<script> //只要是从外部获取的数据,都是String类型。 //i. 根据成绩判断是否发放清华大学的通知书?720 var i_score = prompt('请输入您的成绩:'); if(!isNaN(i_score)){ //先判断输入的是否为数字 不是isNaN ,就是数字 if(i_score > 600){ alert('祝贺你!') } } /* 输入任意两个数,然后交换位置输出(如: a=4,b=5 输出 a=5,b=4) */ var a = prompt("请输入一个数"); var b = prompt('请输入另一个数'); console.log("交换前\n"+ 'a' + '=' + a +'\nb' + '=' + b); var t ; t = a; a = b; b = t; console.log("交换后\n"+ 'a' + '=' + a +'\nb' + '=' + b); /* 输入任意三个数,由大到小输出 */ var a = prompt('please'); var b = prompt('please'); var c = prompt('please'); var t; //思路:让a里面存放三个数中最大值,先判断A和B的大小,如果A小于B,则交换,此时A里面存放A和B之间较大的值,然后再判断A和C的大小,如果A小于C,则交换,此时A里面存放的为A B C 中最大的值;然后再判断B和C的大小,如果B小于C,则交换,此时B里面存放的为B C之间较大的值也就是第二大值,那么C里面存放的就是三者之间最小的值。 //始终保持让A里面存放最大的值 //判断A B的大小,B 大,则交换 if(a<b){ t = a; a = b; b = t; } //判断A C 的大小,C大,则交换 if(a < c){ t = a; a = c; c = t; } //始终保持让B 里面存放第二大值。 //判断B C 的大小,C大,则交换 if(b < c){ t = b; b = c; c = t; } console.log(a,b,c); </script>
if(条件){ 语句组; }else{ 语句组; }
if(条件){ 语句组; }else if(条件){ 语句组; }... ...else if(条件){ 语句组; }else{ 语句组; }
<script> /* 任意输入一个数字,判断是星期几? */ // var a = prompt('请输入'); // if(a == 1){ // alert('星期一'); // }else if(a == 2){ // alert('星期二'); // }else if(a == 3){ // alert('星期三'); // }else if(a == 4){ // alert('星期四'); // }else if(a == 5){ // alert('星期五'); // }else if(a == 6){ // alert('星期六'); // }else{ // alert('星期日'); // } // //判断成绩优(90-100)良(80-89)中(70-79)差(60-69) 不及格(<60) // var score = prompt('请输入'); // if(score > 0 && score <=100){ // if (score >= 90 && score <= 100){ // alert('you'); // }else if(score >= 80){ // alert('liang'); // }else if(score >= 70){ // alert('zhong'); // }else if(score >= 60){ // alert('cha'); // }else{ // alert('bujige'); // } // }else{ // alert('lihai'); // } //设计一个具有+、-、*、/、%的简单计算器 var a = Number( prompt('第一个数')); var ch = prompt('运算符'); var b = Number(prompt('第二个数')) ; if(ch == '+'){ alert(a + '+' + b + '=' + (a + b)); }else if(ch == '-'){ alert(a + '-' + b + '=' +(a - b)); }else if(ch == '*'){ alert(a + '*' + b + '=' +(a * b)); }else if(ch == '/'){ alert(b !== 0 ? a + '/' + b + '=' +(a / b) : '除数不能为0'); }else{ alert(b !== 0 ? a + '%' + b + '=' +(a % b) : '除数不能为0'); } </script> </body>
switch(表达式){ case 表达式 : 语句组;[break;] case 表达式 : 语句组;[break;] …… case 表达式 : 语句组;[break;] [default : 语句组;] }
规则:先计算switch后表达式的值,该值如果与某个case后表达式的值一致,则执行该case后的语句组,如果后面有break,则退出switch语句;如果没有break。则继续执行后面所有语句组,直到遇到break或右大括号结束。
<script> // 任意输入一个数字,判断是星期几? // var z = parseInt(prompt('一个数') ); // switch(z){ // case 1 : alert('星期一');break; // case 2 : alert('星期二');break; // case 3 : alert('星期三');break; // case 4 : alert('星期四');break; // case 5 : alert('星期五');break; // case 6 : alert('星期六');break; // case 7 : alert('星期日');break; // default : alert('无效'); // } /* 输入一个 0-6 的整数,判断哪一天是工作日,哪一天是 休息日? */ // var a = parseInt(prompt('0-6的整数')) ; // switch( a ){ // case 1 : alert('工作日');break; // case 2 : alert('工作日');break; // case 3 : alert('工作日');break; // case 4 : alert('工作日');break; // case 5 : alert('工作日');break; // case 6 : alert('休息日');break; // case 0 : alert('休息日');break; // default : alert('非法'); // } //计算某日是该年的第几天? // 2020 8 1 // 月份 7 是要根据月份来判断加几个月的时间 var year = parseInt(prompt('年份')); var month = parseInt(prompt('月份')); var day = parseInt(prompt('日期')); var sum = 0; switch( month ){ case 12 : sum += 30; case 11 : sum += 31; case 10 : sum += 31; case 9 : sum += 30; case 8 : sum += 31; case 7 : sum += 31; case 6 : sum += 30; case 5 : sum += 31; case 4 : sum += 30; case 3 : sum += 31; case 2 : !(year % 4) && year %100 || !(year % 400) ? sum += 29 : sum+=28; case 1 : sum += day; // default : alert('无效'); } alert(sum); </script>
计算某日是该年的第几天?
这个案例很好地利用了switch的穿透性。首先要能判断出来,我们是根据月份来判断一共要加几个月的时间,知道这一点就能知道switch后面的表达式里面要写到的是month;然后必须从case 12 开始,依次倒着写,这样,如果说输入的日期是11月28号,那么case匹配到month是11,就跳过case 12,从case 11 开始,依次执行后面的每一条语句,也就会依次加上10月,9月,……,2月,一月的天数,这样就能得出总的时间;最后需要注意的是,用户输入的是12月,则加的前11个月的天数,然后再加上12的day数,用户输的是9月,则加的是前8个月的天数,然后加上9月的day数,……,依次……;如果用户输入的是1月,则直接加上一月份的day数就好了。
<script> // switch // 1) 任意输入一个数字,判断是星期几? // var z = parseInt(prompt('一个数') ); // switch(z){ // case 1 : alert('星期一');break; // case 2 : alert('星期二');break; // case 3 : alert('星期三');break; // case 4 : alert('星期四');break; // case 5 : alert('星期五');break; // case 6 : alert('星期六');break; // case 7 : alert('星期日');break; // default : alert('无效'); // } // 2) 输入一个 0-6 的整数,判断哪一天是工作日,哪一天是 休息日? // var a = parseInt(prompt('0-6的整数')) ; // switch( a ){ // case 1 : alert('工作日');break; // case 2 : alert('工作日');break; // case 3 : alert('工作日');break; // case 4 : alert('工作日');break; // case 5 : alert('工作日');break; // case 6 : alert('休息日');break; // case 0 : alert('休息日');break; // default : alert('非法'); // } // 3) 输入一个月份,输出这个月有多少天? // var year = parseInt(prompt('年份')); // var month = parseInt(prompt('月份')); // switch( month ){ // case 1 : // case 3 : // case 5 : // case 7 : // case 8 : // case 10 : // case 12 : alert('31天');break; // case 4 : // case 6 : // case 9 : // case 11 : alert('30天');break; // case 2 : !(year % 4) && (year % 100) || !(year % 400) ? alert('29天') : alert('28天'); // } // 4) 判断成绩优良中差不及格 100-90 89- 80 79-70 69-60 <60 //方法一 // var i_score = Number(prompt('您的成绩')); // if(i_score >= 0 && i_score <= 100){ // switch (true){ // case i_score>=90 && i_score<=100 : alert('优');break; // case i_score>=80 : alert('良');break; // case i_score>=70 : alert('中');break; // case i_score>=60 : alert('差');break; // case i_score<60 : alert('不及格'); // } // }else{ // alert('请输入0-100的数字'); // } //方法二 // var i_score = parseInt(prompt('您的成绩')/10); // switch(i_score){ // case 10 : // case 9 : alert('优');break; // case 8 : alert('良');break; // case 7 : alert('中');break; // case 6 :alert('差');break; // default :alert('不及格'); // } // 5) 计算某日是该年的第几天? // var year = parseInt(prompt('年份')); // var month = parseInt(prompt('月份')); // var day = parseInt(prompt('日期')); // var sum = 0; // switch( month ){ // case 12 : sum += 30; // case 11 : sum += 31; // case 10 : sum += 31; // case 9 : sum += 30; // case 8 : sum += 31; // case 7 : sum += 31; // case 6 : sum += 30; // case 5 : sum += 31; // case 4 : sum += 30; // case 3 : sum += 31; // case 2 : !(year % 4) && year %100 || !(year % 400) ? sum += 29 : sum+=28; // case 1 : sum += day; // // default : alert('无效'); // } // alert(sum); //这个案例很好地利用了switch的穿透性。首先要能判断出来,我们是根据月份来判断一共要加几个月的时间,知道这一点就能知道switch后面的表达式里面要写到的是month;然后必须从case 12 开始,依次倒着写,这样,如果说输入的日期是11月28号,那么case匹配到month是11,就跳过case 12,从case 11 开始,依次执行后面的每一条语句,也就会依次加上10月,9月,……,2月,一月的天数,这样就能得出总的时间;最后需要注意的是,用户输入的是12月,则加的前11个月的天数,然后再加上12的day数,用户输的是9月,则加的是前8个月的天数,然后加上9月的day数,……,依次……;如果用户输入的是1月,则直接加上一月份的day数就好了。 // // 6) 用 switch 实现简单计算器 // var i_one = Number(prompt('第一个数')); // var ch = prompt('运算符'); // var i_two = Number(prompt('第二个数')); // switch( ch ){ // case '+' : alert(i_one + '+' + i_two + '=' + (i_one+i_two));break; // case '-' : alert(i_one + '-' + i_two + '=' + (i_one-i_two));break; // case '*' : alert(i_one + '*' + i_two + '=' + (i_one*i_two));break; // case '/' : i_two === 0 ? alert('除数不能为0') : alert(i_one + '/' + i_two + '=' + (i_one/i_two));break; // case '%' : i_two === 0 ? alert('除数不能为0') : alert(i_one + '%' + i_two + '=' + (i_one%i_two));break; // } // 7) 根据血型与性别测试性格 // var blood = prompt('血型 A B C 0'); // var sex = prompt('性别 M W'); // switch (sex ){ // case 'M' : switch (blood){ // case 'A' : alert('男A');break; // case 'B' : alert('男B');break; // case 'AB' : alert('男AB');break; // case 'O' : alert('男O'); // }; // case 'W' : // switch (blood){ // case 'A' : alert('女A');break; // case 'B' : alert('女B');break; // case 'AB' : alert('女AB');break; // case 'O' : alert('女O'); // } // } // 8) 设计一个简单的猜拳游戏 var play_one = parseInt(prompt('请输入 0为石头 1为剪刀 2位布')) ; var play_two = parseInt(prompt('请输入 0为石头 1为剪刀 2位布')) ; switch(play_one){ case 0 : switch(play_two){ case 0 : alert('平局');break; case 1 : alert('先手赢');break; case 2 : alert('后手赢'); }break; case 1 : switch(play_two){ case 0 : alert('后手赢');break; case 1 : alert('平局');break; case 2 : alert('先手赢'); }break; case 2 : switch(play_two){ case 0 : alert('先手赢');break; case 1 : alert('后手赢');break; case 2 : alert('平局'); } } </script>