【发布时间】:2016-08-10 19:01:37
【问题描述】:
我正在努力学习 Java,我在高中学习 Pascal,它有 repeat until..; 指令。
我想解决一个练习,我应该继续输入数字,直到倒数第二个 + 倒数第二个数字等于我输入的最后一个数字。(a[i-2]+a[i-1] = a[i]); 我在没有数组的情况下这样做,但这并不重要。
在 Pascal 中这很容易,因为重复直到更容易使用 例如,它会是
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循环中测试 n 是否等于 3 或 n 是否小于 4?如果n==3为真,那么n<4也必须为真。 -
do {} while ()在 Java 中不常用。使用while () {}可能会更幸运,也许使用break退出循环。 -
在 Java 中,您的操作方式几乎与 Pascal 完全相同。您在文中的解释是正确的,只有一点小问题。
-
首先,从最后一个条件中删除 "(n==3) || "。其次,请记住 do-while 至少执行一次……这是与 while 的主要区别。如果您想停止执行,请在“do-whiles”之一中放置一个“if”条件以及一个返回命令。如果你想继续执行,只需放一个“break”而不是“return”......每个“break”只打破放置的循环并且程序继续,