JAVA基础

简单随心 2015-08-27 04:21:21
public class Test {
public static void main(String args) {
int a;
if (a == 8) {
int b = 9;
System.out.println(a);
System.out.println(b);
}
System.out.println(a);
System.out.println(b);
}
}


在执行编译的时候,编译器返回什么错误?

A选项: a没有初始化
B选项: 符号b没有找到

请大家踊跃选择,最好能解释下理由
...全文
197 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
空心兜兜 2015-08-28
  • 打赏
  • 举报
回复
先是未声明的b
code小生 2015-08-28
  • 打赏
  • 举报
回复
第一次编译先报找不到符号b。将最后一条输出语句注释掉后,再编译就会报可能尚未初始化变量a。
  • 打赏
  • 举报
回复
变量有作用域范围,就是这个变量最近的大括号 {} 最直观的看, b 声明在 if 语句的执行语句中,b的作用域范围就是if语句的执行语句中 因此 你在if的执行语句外调用b,编译器会告诉你它不认识这个b
QSEN1024 2015-08-27
  • 打赏
  • 举报
回复
这样写问题很多 1、局部变量a 初始化时需要进行赋值 2、b是在if条件内进行初始化的,所以编译器会判断如果不走if条件时,b就就是未定义,这个错误就会首先被编译器识别。 直接编译不通过何来的运行时报错、
ITjavaman 2015-08-27
  • 打赏
  • 举报
回复
编译的时候报B,没有申明变量b,没有为b开辟内存 假如能运行,那将会报a,没有初始化,申请完内存然后没有放东西进去 个人的见解,菜鸟一枚,坐观大神级解答
gukuitian 2015-08-27
  • 打赏
  • 举报
回复
这不叫基础了吧 得研究编译器方法检查规则了
weixin_30086719 2015-08-27
  • 打赏
  • 举报
回复
b。、、、、、

50,728

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧