2017-10-20 6 views
0
import java.util.*; 
public class Project3{ 

public static void main(String[] args) 
{ 

Scanner key = new Scanner (System.in); 

double rate = 0.05; 
double annually, monthly, daily; 
double balance; 
int year = 10 ; 

System.out.println("Enter the amount you will like to deposit or type exit to end."); 
int deposit = key.nextInt(); 

annually = deposit * Math.pow((1 + rate/1),year); 
monthly = deposit * Math.pow((1 + rate/12),year); 
daily = deposit * Math.pow((1 + rate/365),year); 

while (deposit) 
{ 

} 




System.out.println(annually); 
System.out.println(monthly); 
System.out.println(daily); 
} 
} 

これは私が現在持っているものです。私が達成しようとしているのは、次のループで最初の結果を追加するループを作ることです。毎年、毎月、毎日を見つけるのではなく、3つの数式を1つの式で作成します。化合物の利益

+0

「最初の結果に次のものを追加するループを作成する」と説明してください。「 – Harshit

+0

」各期間の関心事を追加するループを使用します。つまり、何らかの代数式を使用しないでください。あなたのプログラムには、ユーザーが新しい残高と金利のためにこの計算を繰り返すことを可能にする外側のループが必要です。ユーザーがプログラムを終了するように求めるまで、計算が繰り返されます。 – Luis

+0

ループの最初の繰り返しから値を追加しようとしている場合は、新しい変数に保存してください。あなたはそれぞれの式を1つの行に入れるだけで、それぞれの変数を変数に格納するのが正しいです。補足:宿題の場合は、先生に助けを求めることを検討してください。誰かにあなたの宿題を書き留めさせるためにQAサイトに行くのは非常に非倫理的です。 –

答えて

-2

提案のカップル - あなたは両方Stringintタイプに対するユーザー入力を確認したいので、あなたは、ユーザーの入力を保持し、その後、Integerとしてそれを解析するtry/catchを行うためにString型の変数を定義することができますそうでない場合はIntegerの入力が"exit"String.equals()メソッドを使用)と等しいかどうかを確認してください。

import java.util.*; 
public class Project3{ 

    public static void main(String[] args) 
    { 
     Scanner key = new Scanner (System.in); 

     double rate = 0.05; 
     double annually = 0, monthly = 0, daily = 0; 
     double balance; 
     int year = 10, deposit = 0 ; 
     String userinput = ""; 

     do { 
      try { 
       System.out.println("Enter the amount you will like to deposit or type exit to end."); 
       userinput = key.nextLine(); 
       deposit = Integer.parseInt(userinput); 
      } 
      catch (Exception e){ 
       if (!userinput.equals("exit")){ 
        System.out.println("Didn't recognize that input, please try again..."); 
       } 
       else{ 
        break; 
       } 
      } 
     } while (!userinput.equals("exit")); 

     annually += deposit * Math.pow((1 + rate/1),year); 
     monthly += deposit * Math.pow((1 + rate/12),year); 
     daily += deposit * Math.pow((1 + rate/365),year); 

     System.out.println(annually); 
     System.out.println(monthly); 
     System.out.println(daily); 
    } 
} 

ユーザーが"exit"に入った後、あなたが出力をしたいかに応じて、簡単に、最後に一度だけ有効な各deposit入力後に金額を表示するには、ループの範囲を調整する、またはすることができます。

これが役に立ちます。

+2

-1は、誰かの宿題を書くためのものです。プログラムを教えることのアイデアは、学習者のためのプログラムではなく、問題の解決方法を考えるのに役立ちます。 –

+0

私は彼らが彼らの問題を解決するのに役立つと信じている欠けている概念を学習者に示します。 -1とあなたの説明をありがとう。 – davedwards

+1

しかし、それらのコードを書くことは、彼らに欠けている概念を表示しているわけではなく、単純にソリューションに簡単な方法を示しています。 –

1

まず、あなたの宿題を書くように頼むことは、実際には非倫理的であり、長期的にはあなたには役に立ちません。あなたが長期的に気にしない場合は、別のクラスを取ることを検討してください。キャリアシナリオでは、自分でコードを書くことが期待されます。あなたはユーザーから値(保証金)を収集するように

それはそうして、言った値の複利を計算する:

は第二に、実際にあなたの質問に答えるために、ここにいくつかのヒントです。あなたのプログラムはまた、ユーザーが終了を指示するまで終了しない必要があります。すなわち、それらは、一連の数についてCIを計算することを望む。

最初の手順では、ユーザーからの値を確認します。それが数値の場合は、その上で計算を行います。文字列の場合は、 "終了"かどうかを確認します。 Javaでは、これはif文を書き出し、非常に有益な "instanceof"キーワードを使用することになります。あなたがそれについて学んでいない場合は、thisを読んだり、先生に相談してください。

計算部分については、入力が「終了」に設定された文字列ではない間に、ユーザーの入力に対して計算を行うだけです。

最後に、計算結果を印刷します。

これだけです。コードには既に計算式がありません。したがって、ユーザー入力を処理するロジックをコーディングするだけで済みます。

関連する問題