gpt4 book ai didi

java,不使用整数(计算器)

转载 作者:行者123 更新时间:2023-12-01 17:02:17 28 4
gpt4 key购买 nike

我正忙着制作计算器,但不知怎的,整数没有被使用,我不知道为什么。我尝试修复它,但我不知道该怎么做。我使用带有事件的按钮来计算答案,也许有问题。这是我的代码:顺便说一句,我使用 Eclipse

    package cal;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class cal{
//declare
JLabel l;
JButton calc = new JButton("Calculate");
JTextField f, f1;
String x, y, answer;
JTextArea a;
int answerValue, xValue, yValue;

//main
public static void main(String [] args){
cal c = new cal();
c.Start();
//Start method
}public void Start(){
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.setSize(640,640);
frame.setResizable(false);

//declare
l = new JLabel("enter value: ");
f = new JTextField(10);
f1 = new JTextField(10);

//remaining
JPanel p = new JPanel();
a = new JTextArea(20,50);
a.setEditable(false);

calc.addActionListener(new button());

p.add(l);
p.add(f);
p.add(f1);
p.add(calc);
p.add(a);

frame.getContentPane().add(p);
frame.setVisible(true);
}
// Calculate
class button implements ActionListener{
public void actionPerformed(ActionEvent e){
x = f.getText();
y = f1.getText();

//converting string to integer
try{
int xValue= Integer.parseInt(x);
int yValue = Integer.parseInt(y);
}catch( NumberFormatException exep){
exep.printStackTrace();
}

answerValue = xValue * yValue;
String AV =Integer.toString(answerValue);

System.out.println(answerValue);

//displaying answer
a.append(AV + "\n");
}
}
}

我说的是 xValue 和 yValue

最佳答案

这就是问题:

try {
int xValue = Integer.parseInt(x);
int yValue = Integer.parseInt(y);
} catch (NumberFormatException exep) {
exep.printStackTrace();
}

这是声明新的本地变量xValueyValue,而不是更改实例变量的值xValueyValue

如果您仍然想要实例变量,只需更改代码以避免声明新的局部变量:

try {
xValue = Integer.parseInt(x);
yValue = Integer.parseInt(y);
} catch (NumberFormatException exep) {
exep.printStackTrace();
}

或者 - 并且最好是,除非您确实在其他地方需要它们 - 您可以完全摆脱实例变量,并在 try/catch block 之前声明局部变量:

int xValue = 0;
int yValue = 0;
try {
xValue = Integer.parseInt(x);
yValue = Integer.parseInt(y);
} catch (NumberFormatException exep) {
exep.printStackTrace();
}

同样,您可以摆脱 answerValue 除非您在其他地方需要它。

不过,我强烈建议您重新考虑您的异常“处理”策略。您实际上忽略了异常,只是继续,就好像一切都很好......

关于java,不使用整数(计算器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26894129/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com