0

我正在阅读一本初学者 Java 书籍,其中包含一些可供尝试的练习题。我目前正在学习 while 循环,并且有一个问题我被困在过去两天里。

它要求我使用单个 While 循环打印出序列 1、2、0、3、-1、4 中的前十个数字。

我已经计算出了序列如何进行的简单位(加 1、加 2、加 3、加 4、加 5、加 6、加 7 等)但是我不知道如何实现这一点。

public class WhileTester {

  public static void main(String[] args) {
    System.out.println("First 10 numbers in the sequence 1, 2, 0, 3, -1, 4, -2 ...");
    int i = 0;
    while (i <= 6) {
      int a = 1;
      int num = i;
      if (i % 2 == 0) {
        num = -i;
      } else {
        num = i;
      }
      a = a + num;
      System.out.print(a+ ", ");
      i++;

我知道这离我需要去的地方很近,但我被困住了。

提前致谢。

4

5 回答 5

1

我认为你的顺序错了,看看数字:它从 1 开始,然后是 +1,-2 +3 -4 +5 ...

也许这有助于您的实施。

于 2013-11-11T00:24:48.313 回答
0

令我震惊的是,您比您自己认为的更接近解决方案。

如果你把num它移到循环之外......

然后,num每次循环时加 1:

在“偶数”循环上添加num,在奇数循环上减去num。现在,您需要循环 10 次(直到值为 6.... 这是一个“巧合”....):

您的关键代码变为:

int num= 0;
int a = 1;
for (int i = 0; i < 10; i++) {
    System.out.println(a);
    num++;
    if (i % 2 == 0) {
        a += num;
    } else {
        a -= num;
    }
}
于 2013-11-11T00:36:38.133 回答
0

您在每次迭代的循环内将 a back 设置为 1。a 不应该在循环外初始化吗?

于 2013-11-11T00:30:08.410 回答
0

公共类测试器{

public static void main(String[] args) {
    System.out.println("First 10 numbers in the sequence 1, 2, 0, 3, -1, 4, -2 ...");
    int num = 0;
    int a = 1;
    int value = 0;
    while (value <= 10) {
        if (value % 2 == 0) {
            num = -value;
        } else {
            num = value;
        }
        a = a + num;
        System.out.print(a + ", ");
        value++;
    }
}

}

于 2020-12-10T19:58:26.057 回答
-1

无法为程序编译类:-

public class WhileTester {

  public static void main(String[] args) {
    System.out.println("First 10 numbers in the sequence 1, 2, 0, 3, -1, 4, -2 ...");
    int i = 0;
    while (i <= 6) {
      int a = 1;
      int num = i;
      if (i % 2 == 0) {
        num = -i;
      } else {
        num = i;
      }
      a = a + num;
      System.out.print(a+ ", ");
      i++;

这是一个错误的信息

于 2014-09-23T08:05:22.257 回答