如何比较java中相同方法的输入

如何比较java中相同方法的输入,java,Java,我希望能得到一些帮助,告诉我哪里出了问题。我试图比较同一方法的分数,但似乎无法得到结果。当我运行代码时没有错误,但是肯定缺少什么,因此我无法获得输出 我确实尝试过使用setter和getter,但它可能没有设置和获取正确的内容 import java.util.Scanner; public class Fraction { private int numerator; private int denominator; public void inp

我希望能得到一些帮助,告诉我哪里出了问题。我试图比较同一方法的分数,但似乎无法得到结果。当我运行代码时没有错误,但是肯定缺少什么,因此我无法获得输出

我确实尝试过使用setter和getter,但它可能没有设置和获取正确的内容

import java.util.Scanner;

public class Fraction {
    private int numerator;
    private int denominator;
    
    
    public void input() {

        Scanner kb = new Scanner (System.in);

        boolean flag=true;

        System.out.println("This program will display your input as fraction.");

        while (flag) {
            System.out.println("Enter a numerator: ");
            numerator = kb.nextInt();
            if (numerator < 0 ) {
                System.exit(numerator);
            }

            System.out.println("Enter a denominator: ");
            denominator = kb.nextInt();
            while (denominator == 0) {
                System.out.println("Plase enter a number other than 0: ");
                denominator = kb.nextInt();
            }
            if (denominator < 0) {
                numerator = ~(numerator - 1);
                denominator = ~(denominator - 1);
            }

            display();
            isZero(numerator);
            //setNumerator();
            //setDenominator();
        }
    }
    
    public void setNumerator(int numerator) {
        this.numerator = numerator;
    }
    
    public void setDenominator(int denominator) {
        this.denominator = denominator;
    }
    
    public Integer getNumerator() {
        return this.numerator;
    }
    
    public Integer getDenominator() {
        return this.denominator;
    }
    
    public static boolean isZero(int numerator) {
        boolean fraction = false;
        if (numerator == 0) {
            fraction = true;
            System.out.println("Fraction is 0");
            System.exit(numerator);
        }
        return fraction;
    } 
    
    public void display() {

        if (numerator !=0) {
            System.out.println("The fraction is: " +numerator +"/" +denominator);
            System.out.println("--------------------------------");
        }
    }
    
    public boolean isEqual() {
        boolean equal = false;
        int otherNumerator = getNumerator();
        if (numerator == otherNumerator) {
            int otherDenominator = getDenominator();
            if (denominator == otherDenominator) {
                System.out.println("the fraction is the same.");
            }
            equal = true;
        } else {
            System.out.println("the fraction is not the same.");
        }
        return equal;
    }
}
`

    
public class TestFraction {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Fraction frac = new Fraction();
        
        frac.input();
        frac.display();
        
    }
    

}
import java.util.Scanner;
公共类分数{
私有整数分子;
私有整数分母;
公共无效输入(){
扫描仪kb=新扫描仪(System.in);
布尔标志=真;
System.out.println(“此程序将以分数形式显示您的输入”);
while(旗帜){
System.out.println(“输入分子:”);
分子=kb.nextInt();
if(分子<0){
系统出口(分子);
}
System.out.println(“输入分母:”);
分母=kb.nextInt();
while(分母==0){
System.out.println(“请输入除0以外的数字:”);
分母=kb.nextInt();
}
if(分母<0){
分子=~(分子-1);
分母=~(分母-1);
}
显示();
是零(分子);
//集合分子();
//集合分母();
}
}
公共无效集合分子(整数分子){
这个。分子=分子;
}
公共无效集合分母(整数分母){
这个。分母=分母;
}
公共整数getNumerator(){
返回这个.分子;
}
公共整数getDenominator(){
返回这个分母;
}
公共静态布尔值为零(整数分子){
布尔分数=假;
如果(分子==0){
分数=真;
System.out.println(“分数为0”);
系统出口(分子);
}
收益率;
} 
公共空间显示(){
if(分子!=0){
System.out.println(“分数为:“+分子+”/“+分母”);
System.out.println(“-------------------------------------”);
}
}
公共布尔等等式(){
布尔相等=假;
int otherNumerator=getNumerator();
if(分子==其他分子){
int otherDenominor=getDenominor();
if(分母==其他分母){
System.out.println(“分数相同”);
}
相等=正确;
}否则{
System.out.println(“分数不一样”);
}
回报相等;
}
}
`
公共类测试分数{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
分数分数分数=新分数();
frac.input();
frac.display();
}
}

这里有很多东西放错地方了。我认为我们目前无法帮助解决您的具体问题,因为您将在下一行遇到麻烦。您应该完全重新思考/重写代码:

  • main
    中,您需要编写
    输入逻辑。在
    分数
    本身上不应该有
    输入
    ,特别是作为非
    静态
    方法
  • display
    0
    的情况下也应该输出一些内容
  • 分数
    应该有一个构造函数,该构造函数采用
    分子
    分母
  • isZero
    首先基本上是无用的,其次它绝对不应该调用
    System.exit()
    ,它也不应该是静态的
  • isEqual
    可能应该注意使
    1/2
    等于
    1/4

大家好,欢迎光临。建立并提供一个测试将帮助您关注实际问题,并使我们能够更快地帮助您。嗨,luk2302,非常感谢您的输入。我重写了代码,并设法得到了正确的输出。谢谢你的指点。非常感谢。