user5376196
user5376196

Reputation:

Code produces no output java

Im trying to write a code, that computes CD value, for every month. Suppose you put 10,000 dollars into a CD with an annual percentage yield of 6,15%. After one month the CD is worth:

10000 + 10000 * 6,15 / 1200 = 10051.25

After the next month :

10051.25 + 10051.25 * 6,15 / 1200 = 10102.76

Now I need to display all the results for the specific number of months entered by the user, So

month1 =

month2 =

But whth this code I wrote, nothing is printed. Can you see what's wrong?

Thanks in advance!

import java.util.Scanner;

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

    System.out.println("Enter an amount");
    double amount = input.nextInt();

    System.out.println ("Enter the annual percentage yield");
    double percentage = input.nextDouble();

    System.out.println ("Enter the number of months");
    int months = input.nextInt();

    double worth = amount + amount * percentage / 1200;

    for (int i = 1; i < months; i++) {

        while (i != months) {
            amount = worth;

            worth = amount + amount * percentage / 1200;


        }
    System.out.print(worth); 

Upvotes: 1

Views: 75

Answers (5)

user5376196
user5376196

Reputation:

Thanks! Solved it by using { System.out.print("Month " + i + " = " + worth); amount = worth; worth = amount + amount * percentage / 1200;

instead of while loop. It works now :) Thanks so much!

Upvotes: 0

ragtime.sp
ragtime.sp

Reputation: 121

As you have been told your code won't get out of the while loop if you don't modify it. Simply remove the while loop. Your code should be like this:

import java.util.Scanner;

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

System.out.println("Enter an amount");
double amount = input.nextDouble();

System.out.println ("Enter the annual percentage yield");
double percentage = input.nextDouble();

System.out.println ("Enter the number of months");
int months = input.nextInt();

double worth = amount + amount * percentage / 1200;

for (int i = 1; i < months; i++) {
amount = worth;
worth = amount + amount * percentage / 1200;
}
System.out.print(worth);
}
}

Upvotes: 0

Swastik Padhi
Swastik Padhi

Reputation: 1909

Corrected code-

import java.util.Scanner;

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

System.out.println("Enter an amount");
double amount = input.nextInt();

System.out.println ("Enter the annual percentage yield");
double percentage = input.nextDouble();

System.out.println ("Enter the number of months");
int months = input.nextInt();

double worth = amount + amount * percentage / 1200;

for (int i = 1; i <= months; i++)
{
System.out.print("Month " + i + " = " + worth);
amount = worth;
worth = amount + amount * percentage / 1200;
}

Note: If you want to print values for each month then the print statement should be inside the loop. You don't need two loops for the objective that you have mentioned above.

Upvotes: 0

Idriss Riouak
Idriss Riouak

Reputation: 95

for (int i = 1; i < months; i++) {

while (i != months) {
//you have to modify i or to modify the while condition.
}

if you don't modify i in the while you can't exit from the loop

Upvotes: 0

CiaPan
CiaPan

Reputation: 9571

You do not modify neither i nor months in

while (i != months) {
    ....
}

so if the (i != months) condition is satisfied, the loop runs forever, and you never get to System.out.print statement.

Upvotes: 1

Related Questions