求高手指导,谢谢了

u010362451 2013-05-02 03:14:39
public class test{
public static void main(String[] args){
int skip = 4;
for (int i = 1 ; i < 10 ; i++){
if (i == skip) continue;
}
System.out.println("i="+i);
}
}

为什么红色的花括号在这里会有报错?(报错信息如下)
test.java:7: 找不到符号
符号: 变量 i
位置: 类 test
System.out.println("i="+i);
^
1 错误)
本人以为这样最后输出是9,我是初学者,谢谢高手帮助
...全文
171 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
坚持2012 2013-05-06
  • 打赏
  • 举报
回复
引用 11 楼 u010362451 的回复:
[quote=引用 10 楼 caochuankui 的回复:] [quote=引用 7 楼 u010362451 的回复:] [quote=引用 5 楼 caochuankui 的回复:] [quote=引用 3 楼 anshiny 的回复:] public class test{ public static void main(String[] args){ int i, skip = 4; for (i = 1 ; i < 10 ; i++){ if (i == skip) continue; } System.out.println("i="+i); } }
这样也写也是正解,最后输出的是9,System.out.println("i="+i);在for循环外面,故i的作用域应该在for循环之前声明[/quote] 这个为输出是10呢??不是9![/quote] 是我搞错了,是当i=10的时候跳出的循环[/quote] 可是还是有问题,因为i<10的,根本取不到10呀?麻烦你和我说一下为什么,谢谢了[/quote] 循环中i<10;是循环的限定条件,当i=10时只是跳出循环,并不是i不能等于10,如例: int i; for(i=0;i<10;i++){ } System.out.println(i);//输出结果是10;
like_jun 2013-05-03
  • 打赏
  • 举报
回复
你那括号就是多余的。。
lcf 2013-05-03
  • 打赏
  • 举报
回复
i<10的话,循环条件满足,继续进入循环。 i=10的时候,条件i<10不满足,跳出循环 所以如果i在循环块外能被访问,它的值一定是10
u010362451 2013-05-03
  • 打赏
  • 举报
回复
引用 10 楼 caochuankui 的回复:
[quote=引用 7 楼 u010362451 的回复:] [quote=引用 5 楼 caochuankui 的回复:] [quote=引用 3 楼 anshiny 的回复:] public class test{ public static void main(String[] args){ int i, skip = 4; for (i = 1 ; i < 10 ; i++){ if (i == skip) continue; } System.out.println("i="+i); } }
这样也写也是正解,最后输出的是9,System.out.println("i="+i);在for循环外面,故i的作用域应该在for循环之前声明[/quote] 这个为输出是10呢??不是9![/quote] 是我搞错了,是当i=10的时候跳出的循环[/quote] 可是还是有问题,因为i<10的,根本取不到10呀?麻烦你和我说一下为什么,谢谢了
坚持2012 2013-05-03
  • 打赏
  • 举报
回复
引用 7 楼 u010362451 的回复:
[quote=引用 5 楼 caochuankui 的回复:] [quote=引用 3 楼 anshiny 的回复:] public class test{ public static void main(String[] args){ int i, skip = 4; for (i = 1 ; i < 10 ; i++){ if (i == skip) continue; } System.out.println("i="+i); } }
这样也写也是正解,最后输出的是9,System.out.println("i="+i);在for循环外面,故i的作用域应该在for循环之前声明[/quote] 这个为输出是10呢??不是9![/quote] 是我搞错了,是当i=10的时候跳出的循环
u010362451 2013-05-02
  • 打赏
  • 举报
回复
引用 8 楼 jacktree365 的回复:
变量应该在范围内调用
什么意思,我是初学者,希望高手说详细点。谢谢了
朗晴 2013-05-02
  • 打赏
  • 举报
回复
变量应该在范围内调用
u010362451 2013-05-02
  • 打赏
  • 举报
回复
引用 5 楼 caochuankui 的回复:
[quote=引用 3 楼 anshiny 的回复:] public class test{ public static void main(String[] args){ int i, skip = 4; for (i = 1 ; i < 10 ; i++){ if (i == skip) continue; } System.out.println("i="+i); } }
这样也写也是正解,最后输出的是9,System.out.println("i="+i);在for循环外面,故i的作用域应该在for循环之前声明[/quote] 这个为输出是10呢??不是9!
赏金--猎人 2013-05-02
  • 打赏
  • 举报
回复
变量作用域的问题,二楼说的很好!
坚持2012 2013-05-02
  • 打赏
  • 举报
回复
引用 3 楼 anshiny 的回复:
public class test{ public static void main(String[] args){ int i, skip = 4; for (i = 1 ; i < 10 ; i++){ if (i == skip) continue; } System.out.println("i="+i); } }
这样也写也是正解,最后输出的是9,System.out.println("i="+i);在for循环外面,故i的作用域应该在for循环之前声明
坚持2012 2013-05-02
  • 打赏
  • 举报
回复
引用 2 楼 dyboy0822 的回复:
public class test{ public static void main(String[] args){ int skip = 4; for (int i = 1 ; i < 10 ; i++){ if (i == skip){ continue; } System.out.println("i="+i); } } }
根据程序的含义,应该是正解
anshiny 2013-05-02
  • 打赏
  • 举报
回复
public class test{ public static void main(String[] args){ int i, skip = 4; for (i = 1 ; i < 10 ; i++){ if (i == skip) continue; } System.out.println("i="+i); } }
dyboy0822 2013-05-02
  • 打赏
  • 举报
回复
public class test{ public static void main(String[] args){ int skip = 4; for (int i = 1 ; i < 10 ; i++){ if (i == skip){ continue; } System.out.println("i="+i); } } }
lcf 2013-05-02
  • 打赏
  • 举报
回复
因为i的变量作用域是for () {...},出了红色括号i就被销毁了

62,615

社区成员

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

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