最初级的计算器算法的一个小bug求大虾改正
/*
* 以下为四则运算算法
* condition=0 ———— 等号
* condition=1 ———— 除法
* condition=2 ———— 乘法
* condition=3 ———— 减法
* condition=4 ———— 加法
*/
拿加法的来举例好啦,初始result=0;conditio=0;
Button bplus = new Button(shell, SWT.NONE);
bplus.setText("+");
bplus.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if (condition == 0) {
result = Double.parseDouble(s);
s = "";
} else {
if (condition == 1) {
result = result / Double.parseDouble(s);
s = String.valueOf(result);
text.setText(s);
s = "";
} else if (condition == 2) {
result = result * Double.parseDouble(s);
s = String.valueOf(result);
text.setText(s);
s = "";
} else if (condition == 3) {
result = result - Double.parseDouble(s);
s = String.valueOf(result);
text.setText(s);
s = "";
} else if (condition == 4) {
result = result + Double.parseDouble(s);
s = String.valueOf(result);
text.setText(s);
s = "";
}
}
condition = 4;
}
});
BUG就是不论任何时候,只要我连按两下运算符,比如连点两下+,都会报错退出。
还有一点不足就是当进行过一次运算得到答案之后,我再按数字,不是刷新s=""重新对s赋值,而是在原来的答案后接着打数字,在哪里修改可以有效的避免?
身边用java的人少,没什么讨论气氛。多谢各位大虾啦!!!
要是需要我贴完整的代码的话我在楼下贴,多谢了!!
[解决办法]
[解决办法]
晕,被包成代码了。
代码放到
code=Java 和 code 中间
[解决办法]
[解决办法]
防止多次按+,
可以这样,设置一静态变量flag 默认为0,当在每次计算的时候,先校验flag,flag为0时才进入下面的计算。
计算过程中,flag置为1。这样,连续按+号时,第二次,会判断这个flag为1,所以不会往下走了。
关于你说的,第二次结果是接着第一次结果,不应该啊,用的哪个控件?