4

私は自分自身にJavaを教えようとしていて、私が手に入れた本の2つの章だけで少ししゃっくりにぶつかっています:Pこれは演習の1つからのものです:

「入力したドル数から通貨単位(-20秒、10秒、5秒、1秒)への変換を計算して表示するクラスを作成します。」

私はこれまでのところコーディングの知識がないことから4時間読み続けているので、これが答えるのに単純すぎる質問に聞こえないことを願っています。この全体を書くためのはるかに効率的な方法があると確信していますが、私の質問は、ユーザーが「はい」と答えた場合に全体を終了する方法、またはユーザーが「いいえ」と答えた場合に改訂版を続行する方法に関するものですか?

また、Javaの学習についてアドバイスやガイダンスをいただければ幸いです。これを読んでくれてありがとう

import javax.swing.JOptionPane;
public class Dollars
{
    public static void main(String[] args)
    {
        String totalDollarsString;
        int totalDollars;
        totalDollarsString = JOptionPane.showInputDialog(null, "Enter amount to be     converted", "Denomination Conversion", JOptionPane.INFORMATION_MESSAGE);
    totalDollars = Integer.parseInt(totalDollarsString);
    int twenties = totalDollars / 20;
    int remainderTwenty = (totalDollars % 20);
    int tens = remainderTwenty / 10;
    int remainderTen = (totalDollars % 10);
    int fives = remainderTen / 5;
    int remainderFive = (totalDollars % 5);
    int ones = remainderFive / 1;
    JOptionPane.showMessageDialog(null, "Total Entered is $" + totalDollarsString + "\n" + "\nTwenty Dollar Bills: " + twenties + "\nTen Dollar Bills: " + tens + "\nFive Dollar Bills: " + fives + "\nOne Dollar Bills: " + ones);
    int selection;
    boolean isYes, isNo;
    selection = JOptionPane.showConfirmDialog(null,
        "Is this how you wanted the total broken down?", "Select an Option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
    isYes = (selection == JOptionPane.YES_OPTION);
        JOptionPane.showMessageDialog(null, "You responded " + isYes + "\nThanks for your response!");
        isNo = (selection == JOptionPane.NO_OPTION);
        int twenties2 = totalDollars / 20;
        int tens2 = totalDollars / 10;
        int fives2 = totalDollars / 5;
        int ones2 = totalDollars / 1;
        JOptionPane.showMessageDialog(null, "Total Entered is $" + totalDollarsString + "\n" + "\nTwenty Dollar Bills: " + twenties2 + "\nTen Dollar Bills: " + tens2 + "\nFive Dollar Bills: " + fives2 + "\nOne Dollar Bills: " + ones2);
}
}
4

1 に答える 1

1

まず、isYes と isNo の 2 つのブール値は必要ないようです。基本的に、ユーザーに別の解決策が必要かどうかを尋ねます。つまり、1 つの true/false 値です (むしろ、オプション ペインは値 YES_OPTION と NO_OPTION のいずれかのみを返すため、isNo は !isYes と同じです)。

次にやりたいことは、ユーザーが最初の出力が望んでいたものではなかったことを示した場合、「洗練された」バージョンに移動することです。

int selection = JOptionPane.showConfirmDialog(null,
        "Is this how you wanted the total broken down?", "Select an Option", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (selection == JOptionPane.NO_OPTION) {            
  int twenties2 = totalDollars / 20;
  int tens2 = totalDollars / 10;
  int fives2 = totalDollars / 5;
  int ones2 = totalDollars / 1;
  JOptionPane.showMessageDialog(null, "Total Entered is $" + totalDollarsString + "\n" + "\nTwenty Dollar Bills: " + twenties2 + "\nTen Dollar Bills: " + tens2 + "\nFive Dollar Bills: " + fives2 + "\nOne Dollar Bills: " + ones2);
}

ユーザーが「はい」を選択した場合、メイン メソッドはとにかく実行されるため、この場合は何もする必要はありません。

于 2012-10-20T19:23:10.530 に答える