java for循环嵌套的问题
publicclasstestNestedLoop{publicstaticvoidmain(String[]args){for(inti=0;i<5;i++){for(...
public class testNestedLoop
{
public static void main(String[] args)
{
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 3; j++)
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
System.out.println(j);
}
}
}
为什么会提示找不到符号
如果把System.out.println 中 i 与 J 的位置颠倒的话就编译正常
如下
public class testNestedLoop
{
public static void main(String[] args)
{
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 3; j++)
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(j);
System.out.println(i);
}
}
}
java初学者 往高手指点TAT 展开
{
public static void main(String[] args)
{
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 3; j++)
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
System.out.println(j);
}
}
}
为什么会提示找不到符号
如果把System.out.println 中 i 与 J 的位置颠倒的话就编译正常
如下
public class testNestedLoop
{
public static void main(String[] args)
{
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 3; j++)
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(j);
System.out.println(i);
}
}
}
java初学者 往高手指点TAT 展开
5个回答
展开全部
你的内层循环,也就是 for(int j = 0; j < 3; j++) 这个,如果不加括号的话,缺省的循环体指的是下面紧接着的一句,而不是多句,因此你的第一个程序被解释为:
public class testNestedLoop
{
public static void main(String[] args)
{
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 3; j++) {
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
}
System.out.println(j);
}
}
}
因此System.out.println(j);这句的 j在循环体外面,而j在循环体外是没有定义的。
你的第二段程序没错是因为刚好打印j那句紧接着for(int j = 0; j < 3; j++)这句,而i在外层循环体内都是有定义的,所以没错,不过打印出来i只循环了5遍,要想循环5*3遍,还是需要把两个打印语句用大括号括起来。
public class testNestedLoop
{
public static void main(String[] args)
{
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 3; j++) {
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
}
System.out.println(j);
}
}
}
因此System.out.println(j);这句的 j在循环体外面,而j在循环体外是没有定义的。
你的第二段程序没错是因为刚好打印j那句紧接着for(int j = 0; j < 3; j++)这句,而i在外层循环体内都是有定义的,所以没错,不过打印出来i只循环了5遍,要想循环5*3遍,还是需要把两个打印语句用大括号括起来。
展开全部
在C#中不是靠缩进来区分代码块的
for(int j = 0; j < 3; j++)
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
System.out.println(j);
你这种写法 在for循环的时候只会执行第一个, 执行完这个for循环的时候才会执行第二行,那时候已经跳出了for(int j = 0; j < 3; j++) 这个循环,也就是跳出了j的作用域,当然会报错了
你应该这么写
for(int j = 0; j < 3; j++){
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
System.out.println(j);
}
for(int j = 0; j < 3; j++)
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
System.out.println(j);
你这种写法 在for循环的时候只会执行第一个, 执行完这个for循环的时候才会执行第二行,那时候已经跳出了for(int j = 0; j < 3; j++) 这个循环,也就是跳出了j的作用域,当然会报错了
你应该这么写
for(int j = 0; j < 3; j++){
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
System.out.println(j);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第二个 for 循环 需要 把 循环体 包起来 {} ,代码应该如下
public class testNestedLoop
{
public static void main(String[] args)
{
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 3; j++)
{ // 加个 {
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
System.out.println(j);
}// 加个 }
}
}
}
public class testNestedLoop
{
public static void main(String[] args)
{
for(int i = 0; i < 5; i++)
{
for(int j = 0; j < 3; j++)
{ // 加个 {
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
System.out.println(j);
}// 加个 }
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(int j = 0; j < 3; j++)
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
System.out.println(j);
没有{}
应该将里面的for循环修改成
for(int j = 0; j < 3; j++){
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
System.out.println(j);
}
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
System.out.println(j);
没有{}
应该将里面的for循环修改成
for(int j = 0; j < 3; j++){
System.out.println/*("i的值为:"+ i +" " +"J的值为:"+ j);*/(i);
System.out.println(j);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-10-11
展开全部
第二层for循环用{}包起来。没有{}时默认方法体是接下来的第一行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询