参数运行并发症

时间:2015-07-06 20:39:46

标签: java

如果您输入3/7等分数,程序会询问您是否要缩放1:向上或0:向下。然后它会要求您输入比例因子。因此,如果您输入3/7然后您想要按1:向上比例然后输入比例因子2,则输出将为6/7。我的程序编译但不输出任何内容。

import java.util.Scanner;

public class FractionScale {


    private static final int factor = 0;

    private int numerator;

    private int denominator;

    private int scale;

    private int ScaleFactor;

    //Scanner Input

    public static void main(String[] args) {

        Scanner userInput = new Scanner(System.in);

        System.out.println("Enter numerator: ");

        int numerator = userInput.nextInt();

        System.out.println("Enter denominator:");

        int denominator = userInput.nextInt();
        System.out.println(numerator + "/" + denominator);

        System.out.println("Scale up or down (1:up, 0:down):");

        int scale = userInput.nextInt();

        System.out.println("Enter a Scale Factor:");
        int ScaleFactor = userInput.nextInt();



    }



    // Constructors

    public FractionScale(int num, int denom) {

        numerator = num;

        denominator = denom;

    }

    public FractionScale() {

        numerator = 0;

        denominator = 1;

    }

    public FractionScale(int num) {

        numerator = num;

        denominator = 1;

    }

    // creating Fraction object

    FractionScale f = new FractionScale(numerator, denominator);

    // method

    public int getNumerator() {

        return numerator;

    }



    public int getDenominator() {

        return denominator;

    }



    int num = f.getNumerator();

    int denom = f.getDenominator();



    public void setNumerator(int num) {

        numerator = num;

    }



    public void setDenominator(int denom) {

        denominator = denom;

    }





    public FractionScale scaledown(int factor) {

        if (ScaleFactor == 0) {

            System.out.println("Error: Scalefactor cannot be 0");

        }



        int denom = denominator * ScaleFactor;

        FractionScale result = new FractionScale(numerator, denom);

        return result;

    }



    public FractionScale scaleup(int factor) {

        int ScaleFactor = factor;

        int num = numerator * factor;

        FractionScale result = new FractionScale(num, denominator);

        return result;

    }



    public int scale(int factor, boolean flag) {

        if (ScaleFactor == 0) {

            System.out.println("Error: Scalefactor cannot be 0");
        }
        if (scale == 1) {

            flag = true;

        } else {
            flag = false;


        }
        int ScaleFactor = factor;
        return factor;



    }

    public FractionScale add(FractionScale f) {
        int num = numerator * f.denominator + f.numerator * denominator;
        int denom = denominator * f.denominator;
        System.out.println("scaled fraction is" + num + "/" + denom);
        return f;
    }

}

1 个答案:

答案 0 :(得分:0)

在您的main方法中,您的程序在接受比例因子的输入后终止。

 public static void main(String[] args) {

        Scanner userInput = new Scanner(System.in);

        System.out.println("Enter numerator: ");

        int numerator = userInput.nextInt();

        System.out.println("Enter denominator:");

        int denominator = userInput.nextInt();
        System.out.println(numerator + "/" + denominator);

        System.out.println("Scale up or down (1:up, 0:down):");

        int scale = userInput.nextInt();

        System.out.println("Enter a Scale Factor:");
        int ScaleFactor = userInput.nextInt();


        //there's nothing here to actually print stuff
    }

请参阅@azurefrog的评论。