recentlywe
2020-12-05 11:18
采纳率: 100%
浏览 25
已采纳

java里面的for循环语句 y没有自增,为什么等于22?

 int x; 
         int y; 
         for (x = 1, y = 1; x <= 100; x++) { 
             if (y >= 20) { 
                break; 
             } 
             if (y % 3 == 1) {  
                y += 3;   
                continue; 
             }
             y -= 5; 
         } 
         System.out.println("x=" + x + ",y=" + y);
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • Polit丶 2020-12-05 22:57
    已采纳

    y对3取余之后你不是给了它一个 +=3 了吗;然后到continue之后他又跳出当前循环开始下一次循环这样一直到y>=20。并且你给y的初始值又是1,每次又是+3那么y只要是小于20的时候都会进到第二个if里面去

    点赞 打赏 评论
  • Destiny_Ren 2020-12-05 12:05

    y in continue    4
    y in continue    7
    y in continue    10
    y in continue    13
    y in continue    16
    y in continue    19
    y in continue    22
    y in break     22
    x=8,y=22
    ------------------------------

    上面是运行过程中y的取值,因为y再开始定义为1,(1,4,7,10...)%3=1,所以会执行y+=3七次,所以最后y会等于22

    点赞 打赏 评论
  • AriaWang 2020-12-05 15:36
     y += 3;和y -= 5这两个语句都是赋值语句的,并且你定义的y是一个全局变量不是局部,所以你的y的值只要没出循环就一直在改变的。
     然后为什么等于22,你自己根据条件循环就知道了。
    点赞 打赏 评论

相关推荐 更多相似问题