A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. class  breakdemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.           for (int x=0;x<3 ;x++)
  6.                 {
  7.                         System.out.println("x=A"+x);

  8.                            if (x==4)
  9.                            break;  
  10.                         {                                  
  11.                                 System.out.println("x="+x);
  12.                         }

  13. /* 求教 1.为何if中不同的x取值会影响最后的结果(如下)运算的具体流程?
  14.                 2.break与if语句在这个循环中是何关系?

  15.                          x取值:                        打印结果:
  16.                          x==0                        x=A0       
  17.                          x==1                        x=A0 x=0 x=A1       
  18.                          x==2                        x=A0 x=0 x=A1 x=1 x=A2               
  19.                          x==m(m>=3)                x=A0 x=0 x=A1 x=1 x=A2 x=2       
  20. */
  21.                 }
  22.                
  23.         }
  24. }
复制代码
老想不明白 谢谢了

5 个回复

正序浏览
jy00228875 发表于 2013-1-29 00:49
break 是跳出break所属循环体。
在本题你的if语句成立执行到你下面的break之后,break就直接跳出所属循环体 ...

受教了 :victory:
回复 使用道具 举报
本帖最后由 武奇伟 于 2013-1-29 09:37 编辑
郭孟涛 发表于 2013-1-29 01:10

谢谢指出我不规范的地方和回答 平时自己不太注意 :lol  同学你看下 我在for语句的循环条件表达式中写的是 x<3  到你这里 变成6了 所以会出现最后和我的不一样的结果 你换成3试下 答案是一样的
回复 使用道具 举报
本帖最后由 郭孟涛 于 2013-1-29 01:15 编辑
  1. class Tes // 注意类名格式,首字母要大写
  2. {
  3.         public static void main(String[] args)
  4.         {

  5.                    for (int x=0;x<6 ;x++)
  6.            {
  7.                   System.out.print("x=A"+x);

  8.                   if (x==4) // 关于影响:当你x取值不会符合这个数值的时候,看不出break的影响。符合了就生效.
  9.                                                 break;  // 关于break:这里的break关系或说作用是,当x等于4的时候直接中止for循环。后面一直到for语句结尾的程序均跳过
  10.                         
  11.                                   //{  这里的括号多余                                 
  12.                   System.out.print("  x="+x);//等x大于等于4的时候结果都是:x=A0  x=0x=A1  x=1x=A2  x=2x=A3  x=3x=A4,并不是你上面说的结果
  13.                   //}

  14.            }
  15.         }
  16. }
复制代码
回复 使用道具 举报
if (x==4)
          break;  
          {                                   
                System.out.println("x="+x);
          }
if判断后的执行语句只有break;后面的输出语句只是一个代码块。
当if判断条件中的x取值小于3时,for循环如果执行到if语句判断成立后就break,不再执行。而if判断条件中的x取值大于等于3时,for循环在执行3次循环后由于条件x<3不满足直接结束了。
回复 使用道具 举报
break 是跳出break所属循环体。
在本题你的if语句成立执行到你下面的break之后,break就直接跳出所属循环体,也就是跳出这段for(int x=0;x<3 ;x++){}的循环体

for (int x=0;x<3 ;x++)
x=0
System.out.println("x=A"+x);//打印 x=A0   
if(x==0)//满足 执行break跳出
没了~

for (int x=0;x<3 ;x++)
x=0
System.out.println("x=A"+x);//打印 x=A0   
if(x==1)//不满足 不执行break
      {      System.out.println("x="+x);  }//打印 x=A0  
返回到循环体x++ ,x=1
x=1
System.out.println("x=A"+x);//打印 x=A1
if(x==1)//满足 执行break
没了

下面以此类推
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马