我试图在零中打印除法除外但它不起作用:
这是我的代码:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int d=0;
Scanner S=new Scanner(System.in);
System.out.println("Please Enter an integer :");
try{
d=S.nextInt();
System.out.println(1/d);
}
catch(ArithmeticException e){
System.out.print("%s",e);
}
}
}
答案 0 :(得分:1)
您的代码对我不起作用,除非我将打印更改为printf:
System.out.printf("%s", e);
但正如您在java.lang.ArithmeticException的文档中看到的那样
[..]一个整数“除以零”抛出此类的实例[..]
但是除法的结果在你的情况下是整数,因为你要划分两个整数值,但是它会使更多的senes接收double或float值,并且在两种情况下都不会抛出异常(除法的结果)是Double.POSITIVE_INFINITY)。
这意味着你必须添加一个检查,如果你的变量“d”等于0.如果它为零则处理它(例如打印一条消息)。
答案 1 :(得分:0)
我刚试过它 - 你需要一个printf("%s",e)语句而不是你当前的print语句。然后,如果在输入数字时输入0,则应将除数误差为零。