java - 我不太了解 do { } while 结构

标签 java do-while repeat

我正在尝试学习 Java,我在高中学习了 Pascal,它有 repeat until..; 指令。

我想解决一个练习,我应该不断输入数字,直到倒数第二个 + 倒数第二个数字等于我输入的最后一个数字。(a[i-2]+a[i-1] = a [i]); 我在不使用数组的情况下执行此操作,但这并不重要。

在 Pascal 中这很容易,因为 repeat until 更容易使用 对于 ex 它将是

repeat  
...   
until ((a[i-2]+a[i-1] = a[i]) and (n=3)); 

n 是我输入的值的个数

我不知道如何在 Java 中引入它,到目前为止我这样做了,但是如果我输入 2 2 4 它不起作用。它应该停止,但它一直在询问数字

    int pen = 0, ant = 0, s = 0, n = 1;
    int ult = input.nextInt();
    s = s + ult;
    do {
        do {
            ant = pen;
            pen = ult;
            ult = input.nextInt();
            n++;
            s = s + ult;
        } while (ant + pen != ult);
        System.out.println(n);
    } while ((n == 3) || (n < 4));

ult 是我输入的最后一个数字,s 是输入数字的总和。

谁能告诉我如何设置条件,以便在我输入值 2 2 4 时它会停止?

最佳答案

Do-While 循环首先运行循环中的代码。它最后评估逻辑,如果逻辑为真,则重复循环内的代码,依此类推,直到逻辑为假。

解决此类棘手问题的方法是拿出一张纸并记录每个变量的作用。像调试器一样逐行检查每一行,并在程序进行时记录每个变量中存储的内容。

这是最好的方法。您会发现您将更深入地了解您的程序是如何工作的。

关于java - 我不太了解 do { } while 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38881552/

相关文章:

c++ - 为什么这会/而永远不会结束?

python - 创建正则表达式以查找标记文本中重复标记的序列

Java,类成员或方法局部变量 : which one is better for performance?

java - ListView 适配器 Android 内的 ListView

Java - 在无限循环中返回多个字符串用户输入

html - 顶部图像,重复背景和底部图像...HTML 和 CSS

xml - 返回重复节点集中的 "latest"节点

java - 我无法将值输出到 j 文本区域

java - 使用组合

loops - 鉴于缺少 do-while 语句,如何使用 Groovy 迭代 inputStream 中的所有字节?