簡體   English   中英

在JavaScript計算器中創建MR和MC

[英]Create a MR and MC in a javascript calculator

從概念上來說,我希望我的小項目具有存儲功能M-,M +,MR和MC。 我當時正在考慮使用單獨的函數和變量來保存M-和M +。 這是正常的方法還是有更好的方法?

知道我的腳本有什么問題嗎? 如果有什么問題?

數字顯示ID是實際的計算器屏幕

代碼是:

$(document).ready(function(){
    var display = "";
    var operators = ["/", "*", "-", "+"];
    var decimalAdded = false;

    $("button").click(function() {
        var key = $(this).text();

      //update screen by adding display string to screen with maximum 19 numbers viewable
        function updateDisplay() {
            if (display.length > 19) {
              $("#number-display").html(display.substr(display.length - 19, display.length));
            } else {
              $("#number-display").html(display.substr(0, 19));
            }
        }
      //clear all entries by resetting display and variables
        if (key === "AC" || key === "ON" || key === "MC") {
            decimalAdded = false;
            display = "";
            $("#number-display").html("0");
        }

        else if (key === "OFF") {
            decimalAdded = false;
            display = "";
            $("#number-display").html("");
        }


      //clear previous character and reset decimal bool if last character is decimal
        else if (key === "CE") {
            if (display.substr(display.length - 1, display.length) === ".") {
                decimalAdded = false;
            }
            display = display.substr(0, display.length - 1);
            updateDisplay();
        }

      //add key to display if key is a number
        else if (!isNaN(key)) {
            display += key;
            updateDisplay();
        }
      //check that . is the first in the number before adding and add 0. or just .  
        else if (key === ".") {
            if (!decimalAdded) {
                if(display > 0){
                    display += key;
                }
                else {
                    display += "0" + key;
                }
                decimalAdded = true;
                updateDisplay();
            }
        }
        //if key is basic operator, check that the last input was a number before inputting
        else if (operators.indexOf(key) > -1) {
            decimalAdded = false;
            //first input is a number
            if (display.length > 0 && !isNaN(display.substr(display.length - 1, display.length))) {
                display += key;
                updateDisplay();
            }
        // allow minus sign as first input
            else if (display.length === 0 && key === "-") {
                display += key;
                updateDisplay();
            }

        }
        // calculate square root of number

        else if ( $(this).id === "sqrt") {

                var tempStore = display.html();
                $("#number-display").html(eval(Math.sqrt(tempStore)));
                decimalAdded = false;
        }

        // change sign of number

        else if ($(this).id === "plusmn") {
            var newNum = display * -1;
            $("#number-display").html(newNum);
        }

        // create memory plus and minus and calculate MR
        else if (key === "M-") {

        }
        else if (key === "M+") {

        }

        // percentage function

        else if (key === "%"){

        }

        else if (key == "=") {
            //if last input is a decimal or operator, remove from display
            if (isNaN(display.substr(display.length - 1, display.length))) {
                display = display.substr(0, display.length - 1);
            }
            var calc = display;
            calc = eval(calc);
            display = String(calc);
            if (display.indexOf('.')) {
                decimalAdded = true;
            } else {
                decimalAdded = false;
            }
            $("#number-display").html(display);
        }
    });});

一個替代方法是switch語句,其外觀類似於:

switch (key) {
  case "M-":
    // do stuff
    break;
  case "M+":
    // do stuff
    break;
  case "%":
    // do stuff
    break;
  case "=":
    // do stuff
    break;
}

有關MDN的更多文檔: https : //developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/switch

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM