JavaScript知识点:分支结构(if、switch)+算法例题

if-else分支
1.if条件应该是boolean类型的值或表达式
2.如果条件不是Boolean,会进行自动转换
以下几种情况会默认转换为 false:
if(0)、if(0.0)
if(NaN)、if(undefined)
if("")、if(null)
if(false)
switch-case执行流程:
1.解析变量或表达式中的值
2.用解析出来的值与case后的值进行比较 等值运行代码块
3.如果值不相等,就执行default:后的代码块
switch直落模式:
两个或多个case之间没有任何操作代码,表示这两个或多个块要执行同样的代码块,如:
switch(变量/表达式){
case 值1:
case 值2:
case 值3:
语句块;
break;
default:语句块;
break;
}

以下是一些算法题的代码:(执行时需要改变函数的函数名调用每一个例题函数执行)

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>分支结构</title>
  6 </head>
  7 <body>
  8     <!-- 编写一个收银程序,根据商品的单价、购买的数量以及收款金额计算并输出应收金额和找零 -->
  9     <script type="text/javascript">
 10         function getMoney(){
 11             // 定义输入变量:商品单价price、购买的的数量count、
 12             //                  收款金额money
 13             var price,cont,money;
 14             //定义输出变量:消费金额sumPrice、找零coins 
 15             var sumPrice,coins;
 16             // 弹框接受输入的值:单价、数量
 17             price = prompt("请输入商品单价:");
 18             count = prompt("请输入商品数量:");
 19             // 计算商品总价
 20             sumPrice = price*count;
 21             // 判断是否打折
 22             if(sumPrice>=500){
 23                 sumPrice *=0.8;
 24                 alert("您消费到达500,享受8折优惠!");
 25             }
 26             alert("您共消费:"+sumPrice+"元");
 27             // 接受付款金额
 28             money = prompt("请付钱:");
 29             //判断付款金额是否大于消费金额
 30             if(money >= sumPrice){
 31                 // 计算找零
 32                 count = money - sumPrice;
 33                 alert("找您:"+count);
 34             }
 35             else
 36                 alert("钱不够!");
 37             
 38         }
 39         getMoney();//函数调用口
 40     </script>
 41     <script type="text/javascript">
 42         //1. 通过弹框输入年月日,判断该日是这一年的第多少天?
 43         function ymd(){
 44         // 定义输入变量
 45         var year = prompt("请输入年份:");
 46         var month = prompt("请输入月份:");
 47         var date = prompt("请输入日期:");
 48         // 通过月份判断
 49         switch(Number(month)){
 50                 case 1:month =0;break;
 51                 case 2:month=31;break;
 52                 case 3:month=59;break;
 53                 case 4:month=90;break;
 54                 case 5:month=120;break;
 55                 case 6:month=151;break;
 56                 case 7:month=181;break;
 57                 case 8:month=212;break;
 58                 case 9:month=243;break;
 59                 case 10:month=273;break;
 60                 case 11:month=304;break;
 61                 case 12:month=334;break;
 62         }
 63         date=month + Number(date);            
 64         // 判断输入年份是否是闰年
 65         if((year%4==0 && year%100!=0) || year%400==0){
 66             if(month>=2)
 67                 date +=1;
 68             }
 69         console.log("今天是今年的第:"+date+"天");
 70         }
 71         // 2.模拟电话银行按键程序
 72         function bank(){
 73             // 通过switch选择系统功能
 74             var press = prompt("请输入数字选择功能(1.查询余额2.取款3.转换4.退出系统):");
 75             switch(Number(press)){
 76                 case 1:seek();break;
 77                 case 2:draw();break;
 78                 case 3:change();break;
 79                 case 4:exit();break;
 80             }
 81             function seek(){
 82                 console.log("余额查询中……");
 83             }
 84             function draw(){
 85                 console.log("取款进行中……");
 86             }
 87             function change(){
 88                 console.log("转账进行中……");
 89             }
 90             function exit(){
 91                 console.log("退出系统,谢谢使用!");
 92             }
 93         }
 94         // 3.买保险
 95         // 已婚都可以买
 96         // 未婚男<25不买
 97         // 未婚女<22不买 
 98         function insure(){
 99             // 弹框接受员工信息:婚否、性别、年龄
100             var isMarry = prompt("是否已婚(Y|N):");
101             var sex = prompt("请输入性别(M|W):");
102             var age = prompt("请输入年龄:");
103             if(isMarry=="Y"){
104                 console.log("公司为您提供保险!");
105             }else if ((sex=="M" &&age<25)||(sex=="W" && age<22)) {
106                 console.log("不满足公司提供保险条件!");
107             }else{
108                 console.log("满足公司提供保险条件!");
109             }
110         }
111         // 4.某超市促销活动
112         // 会员总价>100 八折 <100 9折
113         // 非会员>100 九折 <100 不打折
114         function superMk(){
115             //弹框询问是否是会员(0|1)
116             //弹框询问商品总价格
117             //定义变量:是否会员isVIP、价格price
118             var isVIP = prompt("是否是会员(0|1):");
119             var price = prompt("商品总价格为:");
120             // 判断是否是会员
121             if(isVIP==1){
122                 if(price>100){
123                     price = price *0.8;
124                     console.log("您是会员且购买金额超过100可以打八折");
125 
126                 }else{
127                     price = price * 0.9;
128                     console.log("您是会员可以打九折!");
129                 }
130             }else if(price>100){
131                     console.log("您购买金额超过100可以打九折!");
132                     price = price *0.9;
133             }
134             console.log("您需要付款:"+price+"元");
135         }
136         // 5.计算1-100之间的和、乘积
137         function sumPro(){
138             var sum=0,product = 1;
139             for(var i=1;i<=100;i++){
140                 sum += i;
141                 product *= i;
142             }
143             console.log("和为:"+sum,"乘积为:"+product);
144         }
145         // 6.九九乘法表
146         // 1*1=1
147         // 1*1=1 1*2=2
148         function multTable(){
149             for (var i = 1; i <= 9; i++) {
150                 for (var j = 1; j <=i; j++) {
151                     var mult = i*j;
152                     document.write(j + "*" + i + "=" + mult);
153                     
154                 }
155                 document.write("<br/>")
156             }
157         } 
158         multTable();//函数调用口
159 
160     </script>
161 </body>
162 </html>

 

posted @ 2019-07-23 21:22  你可以这样称呼我  阅读(714)  评论(0编辑  收藏  举报