qq_57335521 2021-05-04 00:15 采纳率: 50%
浏览 113
已结题

Java 中if判断分母为0时出现的奇怪错误

package com.my.shiyan9_2;

public class Text {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        UseCompute u1 = new UseCompute();
        Compute com = new add();
        u1.useCom(com, 5, 6);
        u1.useCom(new sub(), 5, 6);
        u1.useCom(new mul(), 5, 6);
        u1.useCom(new div(), 5, 6);
        u1.useCom(new div(), 9, 3);

    }

}
interface Compute{
    public int computer(int n,int m);
}
//加法
class add implements Compute{

    @Override
    public int computer(int n,int m) {
        System.out.print("加法:\n n+m = ");
        // TODO 自动生成的方法存根
        return n+m;
    }

}
//减法
class sub implements Compute{
    @Override
    public int computer(int n, int m) {
        System.out.print("减法:\n n-m = ");
        return n-m;
    }    
}
//乘法
class mul implements Compute{
    @Override
    public int computer(int n, int m) {
        System.out.print("乘法:\n n×m = ");
        return n*m;
    }
}
//除法
class div implements Compute{
    @Override
    public int computer(int n, int m) {
        if(m!=0) {
            System.out.print("除法:\n n÷m = ");
            return n/m;
        }else {
            System.out.print("分母不能为零!");
            return 0 ;
        }
    }
}
class UseCompute{
    public void useCom(Compute com, int one, int two) {
        System.out.println(com.computer(one, two));
    }
}

 

为什么输出时当除法if判断分母为零时“   System.out.print("分母不能为零!");”这个语句不输出,其次就是为什么已经判断分母为零了这句“   System.out.print("除法:\n n÷m = ");”还会输出?求大神赐教。

  • 写回答

5条回答 默认 最新

  • 关注

    你的参数分母是6,不是0啊
        u1.useCom(new div(), 5, 6);
    只是计算结果是0
     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月28日