我如何用java做一个简单的循环和JOptionPane



我必须接受这段代码,并将循环if语句添加到它和JOptionPane中,这样当您输入名称和框数时,它就会保持循环,并显示谁选择最多的框的名称和数量,直到您退出。但我已经落后了,我只是不知道该怎么做,我在循环方面遇到了很多麻烦。

这是代码:

public class Picker {
    private String name;
    private int numberOfBoxes;
    private int payAmount;
    public static final int PAY_PER_BOX = 3;

    public Picker(String name, int numberOfBoxes) {
        setName(name);
        //this will set the number of boxes and the pay.
        setNumberOfBoxes(numberOfBoxes);
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setNumberOfBoxes(int numberOfBoxes) {
        this.numberOfBoxes = numberOfBoxes;
        //also set the pay based on the number of boxes.
        payAmount = numberOfBoxes * PAY_PER_BOX;
    }
    public String getName() {
        return name;
    }
    public int getNumberOfBoxes() {
        return numberOfBoxes;
    }
    public int getPayAmount() {
        return payAmount;
    }

    public String toString() {
        return "Name: " + name + "n"
                + "Number of boxes: " + numberOfBoxes + "n"
                + "Pay: $" + payAmount + "n";
    }
}

import java.util.Scanner;
public class PickerTest {
    private static Scanner input = new Scanner(System.in);
    public static final String BUSINESS_NAME = "Ham's Blueberry Patch";
    public static void main(String[] args) {
        //Create the two pickers
        Picker picker1 = getPicker();
        Picker picker2 = getPicker();
        //Call method to show output
        showSummary(picker1, picker2);
    }
    public static Picker getPicker() {
        //Get picker 1
        System.out.println("Enter name for picker");
        String name = input.nextLine();
        System.out.println("Enter number of boxes");
        int numberOfBoxes = input.nextInt();
        input.nextLine();
        Picker picker = new Picker(name, numberOfBoxes);
        return picker;
    }
    public static void showSummary(Picker p1, Picker p2) {
        System.out.println("");
        System.out.println(BUSINESS_NAME);
        System.out.println("");
        p1.toString();
        System.out.println("");
        p2.toString();
        System.out.println("");
        System.out.println("Total Boxes:  " + (p1.getNumberOfBoxes() + p2.getNumberOfBoxes()));
        System.out.println("Total Pay:  " + (p1.getPayAmount() + p2.getPayAmount()));
    }
}

如有任何帮助,我们将不胜感激。非常感谢。

您可以从以下代码中获得帮助:

 for (int i = 0; i < 3; i++) {
            JOptionPane.showConfirmDialog(null, "Hello"); // as parent component is null
        }

退出前,上述代码显示JOptionPane三次。因此,您可以根据需要使用for或while循环。

public String toString() {
    return "Name: " + name + "n"
            + "Number of boxes: " + numberOfBoxes + "n"
            + "Pay: $" + payAmount + "n";
}

对于初学者来说,将@Override标记放在此方法之上是一个非常好的主意,因为您正在重写Object类中的默认toString()方法。放置@Override将提高代码的可读性,并在方法名称中发现小的拼写错误,这是开发人员非常认可的做法。

现在,假设我理解您的问题是正确的,您可以创建一个永远运行的while循环,并打印指针的名称和框的数量。您可以将这些指针作为静态变量存储在Pointer类中,并在它们之间循环,然后根据最高值进行打印。为了减少垃圾邮件,您可以存储一个类型为PointerString的临时变量(如果您想存储指针的名称),如果最高值等于该变量,则不要打印任何内容,否则请更新该临时变量并根据您的值打印要打印的内容。

最新更新