Java 变量打开选项显示2次

Java 变量打开选项显示2次,java,joptionpane,Java,Joptionpane,我想在最后一部分显示变量toPay 例如,我在变量toPay中输入了0,之后它将再次调用main(args),然后我将输入4,但输出是 JOption“To Pay:28”是正确的,但在我关闭JOption窗格后,再次弹出一个窗口,显示JOption“To Pay:0” 套餐付费电话; 导入java.util.Scanner; 导入javax.swing.*; 公务舱试驾{ 公共静态void main(字符串[]args){ 扫描仪sc=新的扫描仪(System.in); int-toPay=0

我想在最后一部分显示变量toPay

例如,我在变量toPay中输入了0,之后它将再次调用main(args),然后我将输入4,但输出是

JOption“To Pay:28”是正确的,但在我关闭JOption窗格后,再次弹出一个窗口,显示JOption“To Pay:0”

套餐付费电话;
导入java.util.Scanner;
导入javax.swing.*;
公务舱试驾{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int-toPay=0;
int n=Integer.parseInt(JOptionPane.showInputDialog(null,“输入calltime”);

如果(n发生此错误是因为此时再次调用程序
Try.main(args)因此,当发生错误时,您可以设置
toPay=0;
,然后显示错误消息,但最后一行再次调用JOptionPane,因此在正确执行第一个JOptionPane后,程序仍将执行最后一个JOptionPane,并显示“Babayadan mo:0”

要纠正这种情况,您必须结束程序或执行以下操作:

import javax.swing.JOptionPane;

public class Try {

    private static int n;

    public static void main(String[] args) {
        babayadan();
    }

    public static void restart() {
        JOptionPane.showMessageDialog(null, "Error!");
        n = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter calltime"));
    }

    public static void babayadan() {
        n = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter calltime"));

        while(n <= 0) {
            restart();
        }

        int toPay = 0;
        if (n <= 3){
            toPay = 20;
        }else {
            toPay = n - 3;
            toPay =(toPay * 3) + 20;
        }
        JOptionPane.showMessageDialog(null, "Babayadan mo: " + toPay, "PAYCHECK", JOptionPane.PLAIN_MESSAGE);
    }
}
import javax.swing.JOptionPane;
公务舱试驾{
私有静态int n;
公共静态void main(字符串[]args){
babayadan();
}
公共静态void restart(){
showMessageDialog(null,“Error!”);
n=Integer.parseInt(JOptionPane.showInputDialog(null,“输入calltime”);
}
公共静态无效babayadan(){
n=Integer.parseInt(JOptionPane.showInputDialog(null,“输入calltime”);

while(n)只要输入
0
,是否要连续运行此程序?
import javax.swing.JOptionPane;

public class Try {

    private static int n;

    public static void main(String[] args) {
        babayadan();
    }

    public static void restart() {
        JOptionPane.showMessageDialog(null, "Error!");
        n = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter calltime"));
    }

    public static void babayadan() {
        n = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter calltime"));

        while(n <= 0) {
            restart();
        }

        int toPay = 0;
        if (n <= 3){
            toPay = 20;
        }else {
            toPay = n - 3;
            toPay =(toPay * 3) + 20;
        }
        JOptionPane.showMessageDialog(null, "Babayadan mo: " + toPay, "PAYCHECK", JOptionPane.PLAIN_MESSAGE);
    }
}