簡體   English   中英

我如何在Java中做一個簡單的循環和JOptionPane

[英]how do i do a simple loop and JOptionPane in java

我必須采用此代碼並向其和JOptionPane添加循環if語句,以便在輸入名稱和框數時,它一直循環並顯示選擇最多的框的名稱和框數,直到退出為止。 但是我已經落伍了,我只是根本不確定該怎么做,我在循環方面遇到很多麻煩。

這是代碼:

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類型的臨時變量(如果要存儲指針名稱),並且如果最大值等於該變量,則不打印任何內容,否則更新該臨時變量並根據您的值打印要打印的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM