一个很不理解的问题

zzwh_0 2007-01-07 10:56:13
for(int i = 0;i<10;i++)
int j = 1;

for(int i = 0;i<10;i++)
{
int j = 1;
}
有什么区别,为什么第一个不能编译,第二个就可以?
...全文
707 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
luyang1016 2007-01-08
  • 打赏
  • 举报
回复
for (int i=0; i<10; i++)
int j = 1;

这种写法是正确的啊。
java里面加{} 表示在循环执行这个程序块。

不加{} 就用for 下面的第一个分号之前的东西表示程序块。

这样有些影响程序的可读性,但是高手的程序一般都是让人看不懂的。
Jim_King_2000 2007-01-08
  • 打赏
  • 举报
回复
for, if这样的语句应该跟表达式啦。带初始化的变量定义好象不是表达式吧(我不是很确定,lz可以去找找书或者标准)?
XXKKFF 2007-01-08
  • 打赏
  • 举报
回复
mark
emin_lee 2007-01-08
  • 打赏
  • 举报
回复
mark!
88324877 2007-01-08
  • 打赏
  • 举报
回复
恩~ 学习了
myzee 2007-01-08
  • 打赏
  • 举报
回复
呵呵 ~~
好~
quwwnet 2007-01-08
  • 打赏
  • 举报
回复
学习
KTZ666 2007-01-08
  • 打赏
  • 举报
回复
Study
cool2635 2007-01-08
  • 打赏
  • 举报
回复
长见识了。
商科程序员 2007-01-08
  • 打赏
  • 举报
回复
学习了。
cihun 2007-01-08
  • 打赏
  • 举报
回复
重复定义
jingxinzhong 2007-01-08
  • 打赏
  • 举报
回复
学习
playfish05 2007-01-08
  • 打赏
  • 举报
回复
实在是没想到这样也会出错。。确实是受教了~~~我觉得该开个帖子大家交流下平时自己出错的地方。。那种不容易觉察的错误。。
yanxn510 2007-01-08
  • 打赏
  • 举报
回复
受益多多!!!!

多谢各位丫~~~~~~~~~~
z_lping 2007-01-08
  • 打赏
  • 举报
回复
同志们学到了什么呀?
Dimons 2007-01-08
  • 打赏
  • 举报
回复
学习
likgui 2007-01-08
  • 打赏
  • 举报
回复
学习!
z_lping 2007-01-07
  • 打赏
  • 举报
回复
弄明白了,
for (int i=0; i<10; i++)
int j = 1;

这个不是合法的Java语法。

按照Java Language Specification,在for后面跟的应该是"Statement",而"Local Variable Declaration"是一种"BlockStatement". "Statement"跟"BlockStatement"是没有联系的两种结构。这个规则也适用于if, while这些结构。
guzhilei1986 2007-01-07
  • 打赏
  • 举报
回复
应该是不能在FOR循环中即声明又赋值,这样写就可以通过编译。
public class Text
{
public static void main(String[] args)
{
int j;
for(int i =0 ;i<10;i++)
//{
j=1;
//}

}
}
z_lping 2007-01-07
  • 打赏
  • 举报
回复
不试不知道,试了吓一跳。
加载更多回复(14)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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