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 = ");”还会输出?求大神赐教。
你的参数分母是6,不是0啊
u1.useCom(new div(), 5, 6);
只是计算结果是0
你只是 n/m 的结果是0。但是你的除数不是 0。所以不会输出
n/m=0,不等于是分母为0,分母为0时,程序会抛出分母不能为0的异常,最好对除法做一个异常处理。
是的,从一个是结果为零,一个是分母为6 int除法就是 被除数 小于 除数,那么结果就是零
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y