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