2

私は大学のコースの1つでJavaを学んでおり、forループを12回繰り返すごとにプログラムの出力を一時停止する方法を知る必要があります。360回繰り返すループがあり、12項目ごとに、キーが押されるまでループが出力を停止するように出力したいと思います。私はかなりの検索を行いましたが、見つけたものはすべてはるかに高度なコンテキストにあり、コードで他に何が起こっているのか完全には理解していませんでした。このプログラムにはGUIがなく、非常に単純なので、ここにすべてのコードを貼り付けることができます。

public class MyMain

{      
    static double principal = 200000.00;
    static double interest = .0575;
    static int term = 360;
    static DecimalFormat currency = new DecimalFormat("###,###.##");

    public static void main(String[] args)
    {

        MortgageCalculator mortgageWeek2 = new MortgageCalculator(principal, interest, term);
        double monthlyPayment = mortgageWeek2.calculate();
        System.out.println("Welcome to my Mortgage Calculator.");
        System.out.println("The principal on this loan is $" + currency.format(principal) + ".");
        System.out.println("The interest on this loan is " + (interest * 100) + "%.");
        System.out.println("The term on this loan is " + term + " months (" + term / 12 + " years).");
        System.out.println("Payments on this loan will be $" + currency.format(monthlyPayment));

        double balanceRemaining = 200000.0;



        for (int i = 0; i < 30 * 12; i++)
        {
            double interestPaid = balanceRemaining * .0575 / 12;
            double principalPaid = monthlyPayment - interestPaid;
            balanceRemaining = balanceRemaining - principalPaid;
            System.out.println("Month " + (i + 1) + " \tPayment Amount: $" + currency.format(monthlyPayment) + 
                    "\tInterest Paid: $" + currency.format(interestPaid) + 
                    " \tPrincipal Paid: $" + currency.format(principalPaid) + 
                    "    \tBalance Remaining: $" + currency.format(balanceRemaining));
        }
      }
    }
4

4 に答える 4

2

ループforを2つのセグメントに分割し、次のように外側のループにステートメントを追加inputします。

    Scanner input = new Scanner(System.in);
    String userInput = null;
    for (int i = 0; i < 30; i++)
    {
      for (int j = 0; j < 12; j++)
      {
        double interestPaid = balanceRemaining * .0575 / 12;
        double principalPaid = monthlyPayment - interestPaid;
        balanceRemaining = balanceRemaining - principalPaid;
        System.out.println("Month " + (i*12+j + 1) + 
                 " \tPayment Amount: $" + currency.format(monthlyPayment) + 
                "\tInterest Paid: $" + currency.format(interestPaid) + 
                " \tPrincipal Paid: $" + currency.format(principalPaid) + 
                "    \tBalance Remaining: $" + currency.format(balanceRemaining));
      }
      userInput = input.nextLine();
    }
    input.close();

停止したら、任意の文字とリターンキー、またはリターンキーだけを押す必要があります。

于 2012-11-15T04:43:18.390 に答える
1

これを行う最良の方法は、印刷を行う内部ループ(12回の反復)を作成し、入力を待機するループでそれをラップすることです。だからあなたは

Scanner input = new Scanner(System.in);
String in = null;  


for (int j = 0; j < 30; j++) {
      for (int i = 0; i < 12; i++)
      {
        double interestPaid = balanceRemaining * .0575 / 12;
        double principalPaid = monthlyPayment - interestPaid;
        balanceRemaining = balanceRemaining - principalPaid;
        System.out.println("Month " + (i + 1) + " \tPayment Amount: $" + currency.format(monthlyPayment) + 
                "\tInterest Paid: $" + currency.format(interestPaid) + 
                " \tPrincipal Paid: $" + currency.format(principalPaid) + 
                "    \tBalance Remaining: $" + currency.format(balanceRemaining));
    }

    System.out.println("Press any key.");
    in = input.next();

 }
 input.Close();
于 2012-11-15T04:44:13.397 に答える
0

「KeyPress」イベントを使用して、キーが押されているかどうかを確認できます。また、どのキーが押されているかを確認することもできます。次に、「中断」してループの反復を停止します...このヘルプを希望します

これが例です

public void keyPressed(KeyEvent e) {
    int keyCode = e.getKeyCode();
    switch( keyCode ) { 
        case KeyEvent.VK_UP:
            // handle up 
            break;
        case KeyEvent.VK_DOWN:
            // handle down 
            break;
        case KeyEvent.VK_LEFT:
            // handle left
            break;
        case KeyEvent.VK_RIGHT :
            // handle right
            break;
     }
} 

インターネットから任意のキーのキーコードを簡単に取得できます。

于 2012-11-15T04:45:30.777 に答える
-1

System.in.read();を使用する必要があります。ユーザー入力を読み取ります。乾杯!

于 2012-11-15T04:44:29.570 に答える