下面的程序1在输出中显示0。我认为这是因为我已经回归C. 但是为什么它不会在第二个程序中显示0。
请说明退货声明何时出现。 谢谢你的支持。
计划1:
public class Division {
public static void main(String[] args) throws Exception {
int c=divide(4,0);
System.out.println(c);
}
public static int divide(int a, int b) {
int c = 0;
try {
c=a/b;
} catch (Throwable f) {
System.out.println("Error");
}
return c; //Why is the output shows 0.
}
}
}
计划2:
我刚刚更改了int c=divide(4,2);
public class Division {
public static void main(String[] args) throws Exception {
int c=divide(4,2);
System.out.println(c);
}
public static int divide(int a, int b){
int c = 0;
try {
c=a/b;
} catch (Throwable f) {
System.out.println("Error");
}
return c; //Why is the output does not shows 0.
}
}
计划3: 为什么我在这个项目中获得0分?
public class Division {
public static void main(String[] args) throws Exception {
int c=divide(4,0);
System.out.println(c);
}
public static int divide(int a, int b) {
try {
int c=a/b;
return c;
} catch (Throwable f) {
System.out.println("Error");
}
//Why is the output shows 0.
return b;
}
}
答案 0 :(得分:0)
这是因为你设置c = a / b。您的返回值为2。
在第一个程序中,您将4除以0,这使得c = 0。
在第二个程序中,你将4除以2,这使得c = 2。
答案 1 :(得分:0)
它在你的第一个程序中很简单,有一个例外,所以变量C的值不会改变,因此当你用0初始化时它返回0。 在你的第二个程序中没有例外,因此C的结果为4/2,即2,所以现在2作为C的值返回。
答案 2 :(得分:0)
计划2:
您的方法不会返回is
,因为这样:
c=0;
为 c=a/b; // according to your values return 2
分配新值,在java中,变量取最后赋值给它。
计划3:
您得到c
有两个原因:
首先,您有一个错误,因为您将积极0
除以int > 0
其次,返回b为zero
,因为b的方法参数输入值为zero
。
答案 3 :(得分:0)
在你编程的第一个版本中,你的除数为0
。在数学术语中,除以0是未定义的,因此抛出ArithmeticException
。变量c
没有被赋予新值,因此当您返回它时,它仍然显示初始值0
。有关除以0
(整数)和0.0
(加倍)的比较,请查看this forum post。
这是执行语句的流程:
int c = 0; // initializing with 0
a/b; // division by 0 => ArithmeticException, no assignment
System.out.println("Error"); // println in the catch block
return c; // return initial value
在你的第二个程序中,除数是2
因此,也不例外。