単純なjQuery計算機で連続計算機能を実現

2513 ワード

単純なjQuery計算機は、連続計算の機能を実現しただけです.

 
 
 
 
Javascript    
 
 

7
8
9
+
4
5
6
-
1
2
3
*
0
=
c
/



var num0 = null;
var num1 = null;
var symble = null;
var lastclick = null;
var symarr = new Array();//シンボルセット
symarr[0] = '+';
symarr[1] = '/';
symarr[2] = '*';
symarr[3] = '-';
symarr[4] = '=';
function number(n){
var numnow = $('#show');
var _exist=$.inArray(lastclick,symarr);//前回クリックが符号かどうかを判断する
if (numnow.val() == 0 || _exist != -1){//表示枠が0または前回クリックが符号であれば、表示枠 を再記録する.
numnow.val($(n).val());
}else{
numnow.val(parseInt(numnow.val()) * 10 +parseInt($(n).val()));
}
lastclick = $(n).val();//前回クリック を更新
}

function calsym(cs){//シンボルクリックイベント応答
var numnow = $('#show');
var _exist=$.inArray(lastclick,symarr);
if(num 0==null&&symble==null){//初期状態
num0 = numnow.val();
symble = $(cs).val();
}else if(num 0!=null&&num 1==null&&_exist!=-1){//連続点オペレータの処理、および最初のクリックオペレータ処理
symble = $(cs).val();
}else{//正常計算状態
num1 = numnow.val();
var result = calculate(symble,num0,num1);
symble = $(cs).val();//上りおよび本行:先に計算する前の演算子と結果、更に演算子を更新して今度のクリック
num0 = result;
numnow.val(result);
num1 = null;
}
lastclick = $(cs).val();//前回クリック を更新
}

function clearCal()/クリア関数
$('#show').val('0');
num0 = null;
num1 = null;
symble = null;
lastclick = null;
}

function calculate(sym,m,n){//計算して結果
var res = null;
m = parseInt(m);
n = parseInt(n);
switch(sym){
case '+':
res = m+n;
break;
case '-':
res = m-n;
break;
case '*':
res = m*n;
break;
case '/':
if (n == 0) {
alert("false");
break;
}
res = m/n;
break;
default:
break;
}
return res;
}