我做了一个函数来计算一个数字的阶乘,但是当我写一个十进制数或一个字符时,“迷你应用程序”不起作用。如何计算小数的阶乘,并在用户写字符时向用户发出消息错误。?
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// BOTON CALCULAR
String valortextfield = jTextField1.getText();
int numero = Integer.parseInt(valortextfield);
Metodos metod = new Metodos();
BigInteger resultado = metod.factorial(numero);
String valorAmostrar= resultado.toString();
jTextArea1.setText(valorAmostrar);
}
方法:
public class Metodos {
public BigInteger factorial (int numero ){
if ((numero < 0)||(numero >50)) {
return BigInteger.ZERO;
} else if (numero==0){
return BigInteger.ONE;
} else {
return BigInteger.valueOf(numero).multiply(factorial(numero-1));
}
}
感谢。
答案 0 :(得分:0)
在try
电话周围加catch
/ parseInt()
个阻止,并查找NumberFormatException
。
String valortextfield = jTextField1.getText();
try
{
int numero = Integer.parseInt(valortextfield);
Metodos metod = new Metodos();
BigInteger resultado = metod.factorial(numero);
String valorAmostrar= resultado.toString();
jTextArea1.setText(valorAmostrar);
}
catch (NumberFormatException e)
{
// Show an error message here or whatever is appropriate
}
这不仅可以捕获&#34; 123.45&#34;等数字,还可以捕获其他非数字输入。
答案 1 :(得分:0)
使用扫描仪
java.util.Scanner scanner = new Scanner(System.in);
while (!scanner.hasNextInt())
scanner.next();
System.out.println(scanner.next());