如果您输入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;
}
}
答案 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的评论。