java - Head First Java Mix For 5 练习 - 中断子句

标签 java loops for-loop

我一直在努力解决 Java Headfirst 书中的一个练习的 Break 子句方面(CH5:p121 供引用)。我了解以下代码在未启动中断子句时如何工作,但在启动时,我没有得到预期的结果。
有人可以引导我完成这个吗?

据我了解,当输入值为 x = x + 0x = x + 6 时,应激活 break 子句

下面是练习代码

class MixFor5 {
    public static void main (String [] args) {
        int x = 0;
        int y = 30;
        for (int outer = 0; outer < 3; outer++) {
            for (int inner = 4; inner > 1; inner--) {
                x = x + 0; //input value
                y = y - 2;
                if (x == 6) {
                    break;
                }
                x = x + 3;
            }
            y = y - 2;
        }
        System.out.println((x + " " + y));
    }
}

我的理解是,如果 x == 6,内部循环就会中断,因此内部循环中的所有内容都将停止,包括额外的 x = x + 3

对于 x = x + 0。我的预期结果是 x = 6 | y = 18(实际结果 x = 6 | y = 14)

对于 x = x + 6。我的预期结果是 x = 6 | y = 22(实际结果 x = 60 | y = 10)

谢谢

最佳答案

对于 x = x + 0

outer = 0;
 inner = 4;
   x=x+0, x!=6;
   x=x+3=3;
   y=30-2=28;
 inner = 3;
  x=3;
  y=28-2=26;
  3 != 6;
  x=3+3;
 inner = 2;
  x==6;
  y=24;
  break;
  y=22;
outer=1;
 inner=4;
  x==6;
  y=20;
  break;
  y=18;
outer=2;
 inner=4;
  x==6;
  y=16;
  break;
  y=14;

对于 x=x+6

outer=0; 
 inner=4;
  x=6;
  y=28;
  break;
  y=26;
outer=1;
 inner=4;
  x=6+6+3;
  y=24;
 inner=3;
  x=15+6+3;
  y=22;
 inner=2;
  x=33;
  y=20;
  y=18;
outer=2;
 inner=4;
  x=42;
  y=16;
 inner=3;
  x=51;
  y=14;
 inner=2;
  x=60;
  y=12;
  y=10;

希望这会有所帮助。

关于java - Head First Java Mix For 5 练习 - 中断子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59395673/

相关文章:

Java 时区从 EDT 到 EST 的过渡期

java - 基于每个日期 java 列表上特定记录的最大字段的 GroupBy 和流过滤器

Java 2D : Creating Shape Fixtures

c++ - cin 在 12 次 for 循环迭代后使我的程序崩溃?

java - 当每个下一个生成的元素都有不同的名称时,如何在 selenium webdriver java 中使用循环

c# - for循环中的数组边界检查优化

java - 如何在 struts2 Action 中获取 ContextPath?

linux - 每 60 秒复制一个文件 bash

Python 从变量 (i,20) 开始迭代范围

java - 一个 while 循环,其中包含一个 if 语句和一个 for 循环