我必须接受这段代码,并将循环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
类中,并在它们之间循环,然后根据最高值进行打印。为了减少垃圾邮件,您可以存储一个类型为Pointer
或String
的临时变量(如果您想存储指针的名称),如果最高值等于该变量,则不要打印任何内容,否则请更新该临时变量并根据您的值打印要打印的内容。