Поэтому я пытаюсь написать программу, которая стимулирует взлет и падение фондового рынка в 5 раз. Пользователь вводит значение для создания нового объекта фондового рынка, а затем значение от пользователя, фондовый рынок либобюст (уменьшение) или бум (увеличение). У меня возникает проблема передачи значения каждому оператору if с изменением в цикле. Когда я запускаю программу, она использует то же значение, которое я ввела, а не значение, которое было создано после вызова boom или bust. Я думаю, что я должен создать значение вне цикла, который содержит его, но я не уверен, как это сделать с пользовательским вводом.
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Enter a Starting Market Value:");
double mv = in.nextDouble();
StockMarket u = new StockMarket(mv);
for (int i = 0; i < 5; i++) {
System.out.println("Boom (1) or Bust(2)? ");
int t = in.nextInt();
if (t == 1) {
System.out.println("Enter a percentage of increase as a decimal ( eg .5 ):");
double r = in.nextDouble();
if (t == 1) {
double e = u.boom(r);
System.out.println("The Stock Market is now at: " + e);
}
} else if (t == 2) {
System.out.println("Enter number of points lost:");
double l = in.nextDouble();
if (t == 2) {
double f = u.bust(l);
System.out.println("The Stock Market is now at: " + f);
}
}
}
}
}
Ниже приведен класс
public class StockMarket {
//Instance Variable Points
private double Points;
// Default no Argument Constructor
public StockMarket(){
this(0.0);
}
// Constructor #2
public StockMarket(double Points){
this.Points = Points;
}
//
public double getPoint(){
return Points;
}
public double boom(double x){
x = Points * (1 + x);
return x;
}
public double bust( double h){
h = Points - h;
return h;
}
}