Java While循环生成序列1、2、0、3、-1、4

Java While循环生成序列1、2、0、3、-1、4,java,while-loop,Java,While Loop,我正在阅读一本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) {

我正在阅读一本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++;
公共类WhileTester{
公共静态void main(字符串[]args){
System.out.println(“序列1、2、0、3、-1、4、-2…”中的前10个数字);
int i=0;

虽然(i我认为你弄错了顺序,但看看数字: 它从1开始,然后是+1,-2+3-4+5


这可能会对您的实现有所帮助。

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

我突然想到,您离解决方案的距离比您自己想象的要近得多

如果取
num
并将其移出循环

然后,每次循环时将1添加到
num

在“偶数”循环中添加
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;
    }
}
int num=0;
INTA=1;
对于(int i=0;i<10;i++){
系统输出打印项次(a);
num++;
如果(i%2==0){
a+=num;
}否则{
a-=num;
}
}

无法为程序编译类:-

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++;
公共类WhileTester{
公共静态void main(字符串[]args){
System.out.println(“序列1、2、0、3、-1、4、-2…”中的前10个数字);
int i=0;
而(i公共类测试仪{

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++;
    }
}
publicstaticvoidmain(字符串[]args){
System.out.println(“序列1、2、0、3、-1、4、-2…”中的前10个数字);
int num=0;
INTA=1;
int值=0;

虽然(好吧,你会怎么在纸上写呢?这是一个健康的起点。是的,我还想说-用纸和笔来思考。一旦逻辑失败,编码就很简单了。但是你知道如何编码,它不应该是1,-1,2,-2,3等等吗?你的描述以1开头,然后加上1,因此序列是1,2…你的代码以0开头,是吗没有打印出初始值,因此它是1,-1….不,序列是1,2,0,3,-1,4,-2,5,-3,6。所以1(+1),1(-2),0(+3),3(-4),-1(+5),4(-6),-2(+7),5(-8),-3(+9),6。感谢大家的帮助,让我更好地理解了这个问题。不,序列是1,2,0,3,-1,4,-2,5,-3.6。所以1(+1),1(-2),1(-2),0(+3),0(-3),3(-4),-1(+5),4(+8),-9),6.感谢大家的帮助,它帮助我更好地理解了这个问题。谢谢你们的帮助!我很感激。帮助了很多asker的代码显然不是为了成为一个完整的类;他只是把所有的东西都写在这里他被卡住了。我想他知道它不能编译。即使他没有,这也是对他的问题的评论,而不是一个错误n回答他的问题,将整个问题复制到你的答案中不会增加任何内容。欢迎这样做。为了防止正确答案被否决,你需要提供决策指导。代码块永远都不应该是充分的答案(除非你的指导在代码中有注释)。请编辑并解释代码。如果已有有效答案,您应该解释为什么您的答案更好或有其他解决方案。