首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java While循环生成序列1,2,0,3,-1,4

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

Stack Overflow用户
提问于 2013-11-11 08:22:04
回答 5查看 3.2K关注 0票数 0

我正在阅读一本初学者的java书,其中包含一些可以试用的练习题。我目前正在学习while循环,有一个问题我被困住了,并且在过去的两天里一直在困扰着我。

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

我已经计算出了最简单的部分,即序列是如何进行的(加1,取2,加3,取4,加5,取6,加7等等)。然而,我不知道如何实现这一点。

代码语言:javascript
运行
复制
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++;

我知道这离我需要达到的地方还很远,但我被困在了想法上。

提前谢谢。

EN

回答 5

Stack Overflow用户

发布于 2013-11-11 08:24:48

我想你弄错了序列,看看数字:从1开始,然后是+1,-2 +3 -4 +5...

也许这会对你的实现有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2013-11-11 08:30:08

在每次迭代时,在循环内将a设置回1。A不应该在循环之外初始化吗?

票数 0
EN

Stack Overflow用户

发布于 2013-11-11 08:36:38

我突然发现,你离解决方案更近了一步,而不是你自己的功劳。

如果你把num移到循环之外……

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

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

你的关键代码变成:

代码语言:javascript
运行
复制
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;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19897001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档