作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在这个程序中为什么我必须初始化a
和b
,因为它们的范围不受限制,但我不能在线上使用它们 d=a+b
?
import java.util.Scanner;
class DivAndSum {
public static void main(String[] args) {
int a = 0, b = 0;
Scanner kb = new Scanner(System.in);
try {
a = kb.nextInt();
b = kb.nextInt();
int c = a / b;
System.out.println("Div=" + c);
} catch (ArithematicException e) {
System.out.println("Please Enter a non zero denominator");
} catch (InputMismatchException e) {
System.out.println("Please Enter integers only");
System.exit(0);
}
int d = a + b;
System.out.println("Sum=" + d);
}
}
下面的程序可以正常编译:
import java.util.Scanner;
class DivAndSum {
public static void main(String[] args) {
int a,b,d;
Scanner kb = new Scanner(System.in);
a = kb.nextInt();
b = kb.nextInt();
d = a + b;
System.out.println("Sum=" + d);}}
最佳答案
如果您正在谈论 int a=0,b=0;
那么 a
和 b
都是局部变量,并且局部变量有初始化
只有类级和实例级变量不需要初始化
如果您不想初始化,请参阅下面的代码
import java.util.Scanner;
class DivAndSum {
int a,b; // here a and b are instance variables so no need to be initialized. Both will have value 0 which is default
public static void main(String[] args) {
// int a = 0, b = 0; a and b are loca variables so both should be initialized
Scanner kb = new Scanner(System.in);
try {
a = kb.nextInt();
b = kb.nextInt();
int c = a / b;
System.out.println("Div=" + c);
} catch (ArithematicException e) {
System.out.println("Please Enter a non zero denominator");
} catch (InputMismatchException e) {
System.out.println("Please Enter integers only");
System.exit(0);
}
int d = a + b;
System.out.println("Sum=" + d);
}
}
关于java - 为什么我必须在这个程序中初始化a和b?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36171563/
我是一名优秀的程序员,十分优秀!