只接受整数的代码

Code for only accepting integers

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

public class JCD {

    public static void main(String[] args) {

        String input, inputs;
        int input1, input2;

        input = JOptionPane.showInputDialog("Enter first number");
        inputs = JOptionPane.showInputDialog("Enter second number");

        input1 = Integer.parseInt(input);
        input2 = Integer.parseInt(inputs);

        JOptionPane.showMessageDialog(null, "The GCD of two numbers  " + input
                + "and" + inputs + " is: " + findGCD(input1, input2));

    }// close void

    private static int findGCD(int number1, int number2) {
        // base case
        if (number2 == 0) {
            return number1;

        }// end if

        return findGCD(number2, number1 % number2);
    }// end static

} // close class

我可以添加什么以使其只接受整数?如果没有给出一个整数那么它会回去再问一次.....

把你的输入请求放在一个while语句中,检查它是否是一个int,如果不是则重复循环,否则退出。为您的两个输入执行此操作。

像这样

public static void main(String[] args) {

    String input=null, inputs=null;
    int input1 = 0, input2=0;

    boolean err=true;
    do{
        try{
            input = JOptionPane.showInputDialog("Enter first number");
            input1 = Integer.parseInt(input);
            err=false;
        }catch(NumberFormatException e){
            e.printStackTrace();
        }
    }while(err);

    err=true;
    do{
        try{
            inputs = JOptionPane.showInputDialog("Enter second number");
            input2 = Integer.parseInt(inputs);
            err=false;
        }catch(NumberFormatException e){
            e.printStackTrace();
        }
    }while(err);

    JOptionPane.showMessageDialog(null, "The GCD of two numbers  " + input
            + "and" + inputs + " is: " + findGCD(input1, input2));

}

请注意,此解决方案要求您在声明变量时对其进行初始化

    String input = null, inputs = null;
    int input1=0, input2=0;

你应该试试 "try and catch"。 输入 = JOptionPane.showInputDialog("Enter first number");
输入=JOptionPane.showInputDialog("Enter second number");

           try {

                     input1=Integer.parseInt(input);
                     input2=Integer.parseInt(inputs);
                    // establish and use the variables if the characters inserted are numbers
               }
         catch(NumberFormatException e){
                JOptionPane.showMessageDialog(null, e+ "is not a number");
                //display a warning to le the user know
               }

你可以使用这样的东西:-

boolean inputAccepted = false;
while(!inputAccepted) {
  try {
     input1=Integer.parseInt(input);
     input2=Integer.parseInt(inputs);
     inputAccepted = true;

  } catch(NumberFormatException e) {
    JOptionPane.showMessageDialog("Please input a number only");
  }

  ... do stuff with good input value
}