国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS基于遞歸實現網頁版計算器的方法分析

2024-05-06 15:23:22
字體:
來源:轉載
供稿:網友

本文實例講述了JS基于遞歸實現網頁版計算器的方法。分享給大家供大家參考,具體如下:

遞歸實現網頁版計算器可以簡化代碼,設計思路:

1、css+html實現計算器的外觀,給每個button綁定number(z)事件,傳入z的不同來區分觸發事件的按鈕。

<style>放入head中

這個div放在body中,是計算器的html,number()通過傳入不同的數字,區分觸發按鈕。

<div class="bg"> <div id="txt"></div> <button id="bt10" value="+">+</button> <button id="bt11" value="-">-</button> <button id="bt12" value="*">*</button> <br data-filtered="filtered"><button id="bt13" value="/">/</button> <button id="bt14" value="=">=</button> <br data-filtered="filtered"><button id="bt1" value="1">1</button> <button id="bt2" value="2">2</button> <button id="bt3" value="3">3</button> <br data-filtered="filtered"><button id="bt4" value="4">4</button> <button id="bt5" value="5">5</button> <button id="bt6" value="6">6</button> <br data-filtered="filtered"><button id="bt7" value="7">7</button> <button id="bt8" value="8">8</button> <button id="bt9" value="9">9</button> </div>

2、在number(z)方法中,利用DOM的innerHTML實現表達式的實時顯示,并用字符串content存儲已點擊的數字或符號,當點擊"="時,調用fact(content)進行計算。

代碼如下:

var content; //存儲已點擊的數字或符號,要定義成全局的,如果定義在number()中,每次content都會被重新賦值function number(z) {  var k=document.getElementById("txt");//獲取顯示框的 DOM,并緩存在k中  if(z==14){//如果點擊了"="號   var sum = fact(content);//調用fact()進行計算,并把結果賦值給sum   content=content+"="+sum;//在要顯示的內容后加入"="和sum   k.innerHTML = content;   content = null;//將content清空,準備下次計算  }else{  //如果沒有點擊"="號,而是點擊的運算符,就需要通過switch把數字轉化成運算符   switch(z){    case 10: z = '+'; break;    case 11: z = '-'; break;    case 12: z = '*'; break;    case 13: z = '/'; break;   }   //把此時輸入的字符存入content   if(content){    content+=z.toString();   }else{    content=z.toString();   }   k.innerHTML = content;//讓它實時顯示  }}

3、本計算器中遞歸算法的思路:在fact(content)中,先用content.indexOf("+")判斷"+"號是否存在,若存在,則分別遞歸調用index前后的兩個字符串,并讓其相加,直到所有串中都找不到"+"后,開始用content.lastIndexOf("-")判斷"-"號,后續操作和加號一樣,存在則遞歸index前后的兩個字符串,并讓其相減,直到找不到減號,就開始判斷乘號和除號,直到沒有符號后返回

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 阿拉善右旗| 彰化县| 尼玛县| 法库县| 明水县| 辽阳市| 和田县| 江西省| 邵阳市| 确山县| 双辽市| 巴彦淖尔市| 乐东| 大竹县| 靖安县| 云林县| 乌兰浩特市| 邻水| 桐梓县| 成武县| 榆林市| 任丘市| 泰州市| 平武县| 固原市| 霍州市| 汤原县| 芜湖市| 和林格尔县| 西丰县| 开阳县| 常州市| 永年县| 田阳县| 永年县| 通河县| 黄冈市| 云阳县| 丹巴县| 宣恩县| 巴彦县|