Java While循环生成序列1、2、0、3、-1、4
我正在阅读一本java初学者书籍,其中包含一些要尝试的练习问题。我目前正在学习while循环,有一个问题我一直在思考,并且在过去的两天里一直在思考 它要求我使用一个While循环来打印序列1、2、0、3、-1、4中的前十个数字 我已经算出了一个简单的部分,就是序列是如何进行的(加1,取2,加3,取4,加5,取6,加7等等),但是我不知道如何实现这一点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) {
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回答他的问题,将整个问题复制到你的答案中不会增加任何内容。欢迎这样做。为了防止正确答案被否决,你需要提供决策指导。代码块永远都不应该是充分的答案(除非你的指导在代码中有注释)。请编辑并解释代码。如果已有有效答案,您应该解释为什么您的答案更好或有其他解决方案。