好的,所以我试图制作一个程序,我需要让计数器从-3开始然后下降2,但是其他每个数字都必须是正数:例如:
-3,5,-7,9,-11,13,-15,17,-19,......
任何输入?
我制作了一个成功的节目,但我觉得这不是很有效。
while ("expression")
{
if (j % 4 == -1) //checks if number should be negative
j = Math.abs(j);
if (j > 0) //makes counter a negative
j = -j;
j -= 2; //goes down by 2
}
答案 0 :(得分:10)
您可以使用for
循环和signSwitcher变量:
int signSwitcher = 1;
for (int x = -3; expression; x -= 2, signSwitcher *= -1) {
int counter = x * signSwitcher;
}
答案 1 :(得分:7)
Geez,你们这些人都在想得太辛苦了。
显而易见的是什么问题if (counter > 0)
counter = -1*(counter+2);
else
counter = -1*(counter-2);
答案 2 :(得分:2)
你正在做的事实上是为每个条目添加2,但随后翻转符号。
int current = 1;
float sign = 1.0f;
while(current < 100) {
current += 2;
sign = Math.signum(sign)*-1.0f;
System.out.println(sign*current);
}
这只是将最后一个条目的符号乘以-1.0(这会使符号翻转)。
答案 3 :(得分:1)
也使用模数:
public static void main(String[] args) {
for (int i = 3; i < 20; i += 2) {
int sign = ((i + 1) % 4 == 0 ? 1 : -1);
System.out.println(i * sign);
}
}
答案 4 :(得分:0)
int increment = 2;
while ("expression")
{
j += increment * (Math.abs(j)) + increment;
increment *= -1;
}
这个怎么样?
非常容易