读书人

最初级的计算器算法的一个小bug求改正

发布时间: 2012-08-27 21:21:57 作者: rapoo

最初级的计算器算法的一个小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 中间
[解决办法]
探讨
引用:
设置一个boolean变量记录当前的加号状态要是已经按了一回了就不算了第二个问题同理记录当前是不是结果如果是结果就直接删除重新再来


多谢!!!!我去试一下!!!新手实在白痴问不出啥高水平问题。。还有一个小事:就是那个回复帖子的工具栏里那个“引用源代码”要怎么用啊

[解决办法]
防止多次按+,
可以这样,设置一静态变量flag 默认为0,当在每次计算的时候,先校验flag,flag为0时才进入下面的计算。
计算过程中,flag置为1。这样,连续按+号时,第二次,会判断这个flag为1,所以不会往下走了。

关于你说的,第二次结果是接着第一次结果,不应该啊,用的哪个控件?

读书人网 >Eclipse开发

热点推荐