模拟股票市场的兴衰

时间:2019-10-27 02:59:27

标签: java oop

因此,我正在尝试编写一个刺激股票市场涨跌5次的程序。用户输入一个值以创建一个新的股票市场对象,然后使用用户的值,股票市场要么是萧条(减少)或繁荣(增加)。我遇到的问题是将值传递给每个if语句并在循环内进行更改。当我运行程序时,它使用的是我输入的值,而不是使用在繁荣或萧条之后创建的值。我在想应该在保存它的循环之外创建一个值,但是我不确定如何用用户输入来做到这一点。

    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;
   }

}

0 个答案:

没有答案