日期:2014-05-20  浏览次数:20641 次

关于for循环
/ legal  
for (int i = 0; i <= N; i++) {  
   int x = 5;  
}  
// illegal
for (int i = 0; i <= N; i++)  
   int x = 5; 

为什么第二种情况省略了大括号会报错

------解决方案--------------------


http://technet.microsoft.com/zh-cn/magazine/ms173143.aspx
------解决方案--------------------
一个本地变量声明看起来像是一条语句,但是从技术上说,它不是;它应该是一个本地变量声明语句(local variable declaration statement)[JLS 14.4]。Java语言规范不允许一个本地变量声明语句作为一条语句在for、while或do循环中重复执行[JLS 14.12-14]。一个本地变量声明作为一条语句只能直接出现在一个语句块中。(一个语句块是由一对花括号以及包含在这对花括展中的语句和声明构成的。)