黑马程序员技术交流社区

标题: 自学第三天 for循环问题 [打印本页]

作者: chun    时间: 2014-11-16 22:35
标题: 自学第三天 for循环问题
练习for循环时
正确程序:
class text
{
   public static void main(String[] args)
   {
        for(int x=0;x<5;x++)
        {
                 for(int y=0;y<=x;y++)
                 {
                  System.out.print("*");
                  }
                System.out.println();
        }
    }
}
运行的结果是:
*
**
***
****
*****
由于粗心,少写了一个大括号,程序如下
class text
{
   public static void main(String[] args)
   {
        for(int x=0;x<5;x++)
        {
                 for(int y=0;y<=x;y++)
                
                  System.out.print("*");
                  }
                System.out.println();
        }
   
}
运行的结果是:
***************
程序中
for(int x=0;x<5;x++)
        {
                 for(int y=0;y<=x;y++)
                
                  System.out.print("*");
                  }
为什么没有出错啊?刚学习不懂,谁帮忙解释一下 ,谢谢!
作者: hailong    时间: 2014-11-16 22:51
for循环后面不写大括号只执行for下面的单条语句,所以在语法上你的程序并没有错误,是不会报错的,但由于你内层循环没有写大括号,所以负责换行的输出语句被写在了外层循环的外面,也就是说外层循环结束后才换行,所以你运行出来的结果是没有换行的
作者: chun    时间: 2014-11-16 22:52
hailong 发表于 2014-11-16 22:51
for循环后面不写大括号只执行for下面的单条语句,所以在语法上你的程序并没有错误,是不会报错的,但由于你 ...

:) 谢谢你的回复  有些明白了
作者: hailong    时间: 2014-11-16 22:55
chun 发表于 2014-11-16 22:52
谢谢你的回复  有些明白了

呵呵,不用客气,多敲敲就好了
作者: 迷失的小Z    时间: 2014-11-16 23:11
最后剩下的大括号竟然没报错……
作者: hailong    时间: 2014-11-17 00:03
迷失的小Z 发表于 2014-11-16 23:11
最后剩下的大括号竟然没报错……

呵呵,他是少写了一对大括号,所以是不会报错的
作者: Smart_lll    时间: 2014-11-17 08:46
少写一对大括号,lz真是巧妙地避开了错误!!!:lol
作者: 迷失的小Z    时间: 2014-11-20 01:08
hailong 发表于 2014-11-17 00:03
呵呵,他是少写了一对大括号,所以是不会报错的

恩 是啊  真的是巧妙的避开了错误啊……
作者: RockyChen    时间: 2014-11-20 11:03
- -!!少了是一对括号。。
作者: riyuenachuan    时间: 2014-11-20 14:33
因为不加大括号它会默认包含距离循环体最近的下一行代码。和if...else...语句一样。如:int a=10,b=11; if(b>a){....}  else{.....}此时else后的大括号可加可不加。
作者: 山有木    时间: 2014-11-20 15:13
:lol语法没问题就没错
作者: cbb    时间: 2014-11-20 15:25
本帖最后由 cbb 于 2014-11-20 15:26 编辑

当循环体或者是选择体下面只有一条语句的时候可以不写大括号,当多条的时候必须加上。否则只执行第一条,其他语句视为与循环体或者选择体同级别存在。  你的就是这种情况

for()
{
    1.条语句。
    2.条语句。
}
for()
    1.条语句。  这一条是循环条件满足被执行的
    2.条语句。  这一条确是和for平等的!只有for循环结束以后才会被执行。

作者: ls61532529    时间: 2014-11-21 00:08
嵌套for循环中执行了for和它下一条打印语句,如果在写行代码就会出错,默认的执行for循环下的一行代码
作者: 依米阳光    时间: 2014-11-21 09:32
一般情况下if...else   for(){} 等判断或者循环语句,如果执行代码块中只有一句代码大括号可以省略不写,否则只执行下面的第一句代码。比如for(i=0;i<10;i++) i++;i--;for循环只执行i++,循环结束后执行i--。for(i=0;i<10;i++) {i++;i--;}for循环中两句代码都会执行。写上大括号是一种良好的编程习惯。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2